Java 1.5 버전 이상부터 사용이 가능.
열거체 (enumeration type)
상수 정의시 사용.
상수값의 타입 안전성을 보장.
정의한 타입 이외에 타입값을 가진 데이터가 들어올 시 체크함.
// 기존 상수 선언시
public static final String mario = "mario";
public static final String lol = "lol";
// enum을 이용한 상수 선언
enum game {
mario,
lol
}
// 기존 상수 사용
String game1 = mario;
game1 = lol;
// 정의한 상수값이 할당 되선 안되지만
// 기본 java에서는 String에 String을 넣는다고 판단하여 에러가 나지 않음.
game1 = "battle";
// enum 사용
String game2 = game.mario;
//상수값을 체크하기 때문에 에러.
game2 = "battel";
아래와 같이 사용할 수 있다.
// enum에서는 상숫값이 설정되는데
// 첫번째 상숫값은 0부터 그리고 1씩 증가한다.
// 임의로 사용하기 위해서는 괄호를 추가해서 아래와 같이 생성.
enum game {
battle(1), lol(5), rinage(2), maple(6)
}
// 하지만 이렇게 불규칙한 값을 사용하기 위해서는 인스턴스 변수와 생성자를 다음과 같이 추가해야함.
private final int value;
game(int value) {
this.value = value;
}
pulbic int getValue() { return value; }