본문 바로가기

자바 (Java)/요약

Chpt 12. 지네릭스, 열거형, 애너테이션 - 주제 3. 열거형

728x90

1. 열거형의 도입

 

열거형은 다음과 같은 이유에 의해 생겨났다.

 

(1) 서로 관련된 다수의 상수를 묶기 위함.
(2) 값과 타입 둘 다 체크하기 위함.

 

class Card {

    static final int CLOVER = 0;

    ...

    

    static final int TWO = 0;

    ...

    

    final int kind;

    final int num;

}

 

(2): Card.CLOVER == Card.TWO // True이지만 의미상 같으면 안된다. 열거형 Kind와 Value를 각각 만들게 된다면 false가 나온다.

 

2. 열거형 정의와 사용

 

1) 정의

 

열거형은 생성자가 private인 클래스라고 생각하면 된다.

 

enum Direction {

    EAST(1, ">"), WEST(2, "<"), ... ;

   

    private final int value;

    private final String symbol;

 

    (private) Direction (int value, String symbol) {

        ...

     }

}

 

2) 사용

 

열거형의 조상은 java.lang.Enum이고 다음과 같은 메서드를 제공한다.

 

String name() : 열거형 상수의 이름을 문자열로 반환

int ordinal() : 열거형 상수가 정의된 순서 반환 (0부터 시작, 위의 enum Direction의 value와 헷갈리지 않도록 주의)

values() : 열거형의 모든 상수를 배열로 반환

valueOf(... , String name): name과 일치하는 열거형 상수를 반환 

 

 

 

반응형