david's daily developer note

[BE] Java Enum Class Example 본문

[Develop] Web/Back-end

[BE] Java Enum Class Example

mouse-david 2022. 7. 7. 00:34
728x90

Java의 Enum타입은 단순하게 도메인의 유형이나 식별용도의 변수 이상으로 활용할 수 있다.
Enum Class는 타입과 멤버 변수 및 함수를 정의하면서 Strategy design Pattern의 형태로 사용할 수 있다.

Enum 클래스는 내부에서 생성자, 메서드, 필드를 정의할 수 있으므로,
추상화된 객체의 상태를 동적으로 정의하는 것이 가능하다.

@Getter
public enum Fruit {
   ORANGE (5000) {
      @Override
      public String getDescription() { return "Orange is ..."; }
   }, APPLE (3000){
      @Override
      public String getDescription() { return "Apple is ..."; }
   },
   ;
   private Integer price;

   Fruit(Integer price) {
      this.price = price;
   }
   public abstract String getDescription();
}

1. Fruit Enum 클래스는 ORANGE, APPLE 2가지 상수를 가지고 있다.
2. Fruit Enum 클래스는 price 변수를 가지고 있고, 상수를 정의할 때 초기화할 수 있는 기본 생성자를 가지고 있다.
3. getDescription 추상 함수는 상수 선언에서 재정의 되었고, 상수마다 다른 동작을 수행할 수 있게 한다

728x90