<aside>
</aside>
프로그래밍에서 요일, 달, 카드 종류 등의 한정된 데이터 묶음을 코드 단과 메모리 단에서 한 군데에 두고 사용하기 위해 쓴다.
public class Day {
public final static Day MONDAY = new Day();
public final static Day TUESDAY = new Day();
public final static Day WEDNESDAY = new Day();
}
메모리 단에 클래스의 고유 객체로 선언하기 위해 상수처럼 객체를 사용했다. 자기 자신의 객체를 인스턴스화하고 final static
키워드로 고유한 객체처럼 사용하는 것이다.
하지만 코드에서 보이듯이 코드 중복의 문제가 있고 switch
문에 들어갈 수 있는 데이터는 타입에 한계가 있기 때문에 분기가 많아질 경우 if 문으로는 한계가 있다.
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
FRIDAY, SATURDAY, SUNDAY
}
그렇기에 자바에서 Enum이라는 개념이 등장했다. 상단의 코드를 쉽게 표현해둔 것으로 클래스를 객체로 인스턴스화하여 메모리에 뛰워둔 것이라고 보면 좋을듯하다.