열거 타입은 한정된 값인 열거 상수(enumeration constant) 중에서 하나의 상수를 저장하는 타입이다.
public enum Week {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
여기서 Week가 열거 타입이다. Week로 아래와 같이 변수를 선언할 수 있고, 그 변수에 저장할 수 있는 것은 Week에 선언된 7개의 열거 상수 중 하나이다.
Week today;
today = Week.FRIDAY;
public enum 열거타입 이름 {...}
위와 같이 열거 타입을 선언한 뒤 열거 상수를 선언하는데, 열거 상수는 열거 타입의 값으로 사용된다.
public enum Week {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
public enum LoginResult {
LOGIN_SUCCESS,
LOGIN_FAILED
}
열거 타입 변수를 선언했다면 열거 상수를 저장할 수 있다.
열거 상수는 단독으로 사용할 수 없고 반드시 열거 타입.열거 상수
형태로 사용된다.
또한, 열거 타입도 참조 타입이므로 열거 타입 변수는 null 값을 저장할 수 있다.
Week today = Week.SATURDAY;
Week birthday = null;
today == Week.SATURDAY; //true
today == Week.SUNDAY; //false