열거
라는 뜻임class
대신 enum
을 사용하고 원하는 상수의 이름을 나열한다public enum Grade{
BASIC, GOLD, DIAMOND
}
위처럼 자바의 열거형으로 작성한 Grade는 다음 밑의 코드와 같다
public class Grade extends Enum {
public static final Grade BASIC = new Grade();
public static final Grade GOLD = new Grade();
public static final Grade DIAMOND = new Grade();
//private 생성자 추가
private Grade() {} // 외부에서 객체 생성안됨
}
java.lang.Enum
을 상속받는다
-> 문자열의 타입 안전성 (오타, 유효하지않는 값, 소문자 등)
-> 컴파일 시 오류 감지 불가 (문자열이므로 컴파일 시에 감시되지가 않아서 디버깅이 어려움)