ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] Enum의 개념과 사용예제
    Java 2021. 3. 5. 22:56

    Enum 이란?

     

    열거체, 명명된 값을 이루는 집합이다.

     

    Enum의 장점

     

    IDE의 지원: 자동완성, 오타검증, 텍스트 리팩토링

    이외에도 타입체크가 가능하고 상숫값이 재정의되어도 다시 컴파일 할 필요가 없다.

     

    사용 예제

     

    public enum Role {
        ROLE_ADMIN("관리자"), ROLE_MANAGER("매니저"), ROLE_MEMBER("일반사용자");
    
        private String description;
    
        Role(String description) {
            this.description = description;
        }
    }

     

    역할을 String 형식의 인수로 가질 수도 있겠지만 위와 같이 Role을 관리자, 매니저, 일반사용자로 제한할 수 있다.

     

    위의 enum을 호출할때는 

    Role.ROLE_ADIMN
    Role.ROLE_MANAGER
    Role.ROLE_MEMBER

    이렇게

    {열거체이름}.{상수이름} 의 형식으로 쓴다.

     

     

    다음은 Enum 클래스의 메서드에 관한 내용이다.

     

    values()

    enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }
    
    public class Enum01 {
        public static void main(String[] args) {
            Rainbow[] arr = Rainbow.values();
            for (Rainbow rb : arr) {
                System.out.println(rb);
            }
        }
    }

     

    values() 메서드를 통해 모든 상수를 배열로 받을 수 있다.

    RED
    ORANGE
    YELLOW
    GREEN
    BLUE
    INDIGO
    VIOLET

     

     

    ordinal()

     

    enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }
    
    public class Enum03 {
        public static void main(String[] args) {
            int idx = Rainbow.YELLOW.ordinal();
            System.out.println(idx);
        }
    }
    2

    ordinal()은 상수 자체가 아닌 열거형에서 정의된 순서를 반환한다.

     

     

     

    아래는 대표적인 Enum 함수들이다.

    static E values() 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환함.
    static E valueOf(String name) 전달된 문자열과 일치하는 해당 열거체의 상수를 반환함.
    protected void finalize() 해당 Enum 클래스가 final 메소드를 가질 수 없게 됨.
    String name() 해당 열거체 상수의 이름을 반환함.
    int ordinal() 해당 열거체 상수가 열거체 정의에서 정의된 순서(0부터 시작)를 반환함.

     

     

    http://www.tcpschool.com/java/java_api_enum

Designed by Tistory.