개발자가 클래스를 선언하듯이, 열거타입도 직접 선언해야 함.
(기본 타입처럼 미리 정의되어있는 타입이 아니다)
열거타입 선언
public enum 열거타입이름 {열거상수1, 열거상수2, ... 열거상수n}
public enum Week {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}//end enum
MONDAY, TUESDAY, ... , SUNDAY 가 열거 상수.
변수 생성시, 이 열거 상수들은 힙 영역에 각각 객체로 생성된다. >> 따라서 type 이 없다.
상수 이름은 모두 대문자로 선언하고, 복합단어의 경우 단어 사이는 언더바_ 로 연결한다.
(문자열 리터럴과 비슷한 개념!)
enum 파일을 별도의 소스파일로 생성하면 다른 소스파일에서도 사용이 가능하지만,
같은 소스파일 내에 선언하면 현재 사용중인 소스파일 내에서만 쓰겠다는 뜻.