Enum은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미합니다.
- 코드가 단순해지며, 가독성이 올라간다.
- 인스턴스 생성과 상속을 방지하여 상수값의 타입안전성이 보장된다.
- enum class를 사용해 새로운 상수들의 타입을 정의함으로 정의한 타입 이외의 타입을 가진
데이터값을 컴파일시 체크한다.- 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 알 수 있다.
package test.day1;
public class EnumEx {
// 상수 정의
public static final String A = "A";
public static final String B = "B";
// enum class를 이용해 ABC라는 새로운 상수들의 타입을 정의
enum ABC{
A,
B;
}
public static void main(String[] args) {
String Eng1;
Eng1 = EnumEx.A;
Eng1 = EnumEx.B;
// A,B 가 아닌 다른 상수 값이 할당 될 때 컴파일시 에러 X
Eng1 = "C";
// Eng2 는 ABC타입이므로 ABC타입은 A,B만 할당 가능
ABC Eng2;
Eng2 = ABC.A;
Eng2 = ABC.B;
// A,B 가 아닌 다른 상수 값이 할당 될 때 컴파일시 에러
// Enum으로 정의한 상수값만 할당 받을 수 있음.
Eng2 = "boy2";
}
}
출처 : Limky 삽질블로그