enum은 열거형(enumerated type 혹은 enumeration)이라고 부른다. 자바 이전에 많은 사람들이 상수를 효과적으로 쓰기 위해 만든 타입이다. 열거형은 서로 연관된 상수(변하지않는 값)들의 집합이라고 할 수 있다. (새로 개발할때는 되도록 안쓰는 것이 좋지만 이전에 작성된 코드를 이해하기 위해서 알고있는 것이 좋다.)
class Fruit{
public static final Fruit BANANA = new Fruit();
public static final Fruit APPLE = new Fruit();
}
==>
enum Fruit{
BANANA, APPLE
}
enum이 서로 다른 상수 그룹에 대한 비교를 컴파일 시점에서 차단할 수 있다는 것을 의미한다. 상수 그룹 별로 클래스를 만든 것의 효과를 enum도 갖는다는 것을 알 수 있다.
enum을 사용하는 이유를 정리하면 아래와 같다.
- 코드가 단순해진다.
- 인스턴스 생성과 상속을 방지한다.
- 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 나타낼 수 있다.