여러개의 상수를 관리할 때 편리하게 선언하는 방식이다
enum 열겨형 이름 { 상수명1, 상수명2 }
enum Direction { EAST, SOUTH, WEST, NORTH }
사용법 >>
class Unit{
Direction dir; // 열거형 인스턴스 변수를 선언
void init(){
dir = Direction.EAST;
}
}
열거형 상수간의 비교는 '=='를 사용 할 수 있다 하지만 비교연산자 '>' , '<' 는 사용이 불가능하다 대신 compartTO()는 사용이 가능함
dir == Direction.EAST 가능
dir > Direction.EAST 불가능
dir.compareTo(Direction.WEST) > 0 가능
열거형 메소드 종류
Class getDeclaringClass() 열거형의 Class객체를 반환한다
String name() 열거형 상수의 이름을 문자열로 반환한다
int ordinam() 열거형 상수가 정의된 순서를 반환한다 (0부터) 값과는 무관, 단순히 순서만 지정됨
T valueOf(Class enumType, String name) 지정된 열거형에서 name과 일치하는 열거형 상수를 반환한다
enum Direction{
EAST(1) , SOUTH(5) , WEST(-1) , NORTH(10);
private final int value; // 열거형의 상수값을 저장하기 위해 final로 하는 것이 좋다
Direction(int value) {this.value = value; } // 접근 제어자 private가 디폴트 열거형 생성자는 외부에서 호출 불가능
public int getValue() {return value;}
}