[11주차] enum

목차

자바의 열거형에 대해 학습하세요.

  • enum 정의하는 방법
  • enum이 제공하는 메소드 (values()와 valueOf())
  • java.lang.Enum
  • EnumSet

라이브 강의 Point

  • 타입세이프티 (enum의 장점) image

  • ordinal에 의존한 코드는 위험하다. 값이 추가되면 ordinal이 변화될 수 있기 때문이다.
    • Enum.ordinal 대신 Enum.STRING 을 사용해야 한다.
  • 모든 Enum은 Enum 클래스를 상속받은 것이다.

  • 순서를 지정할 때는 1,2,3... 순이 아니라 10,20,30... 과 같이 중간을 비워둬야 값을 추가하기 용이하다.

  • EnumSet.noneOf(Fruit.class) : 빈 EnumSet / EnumSet.allOf(Fruit.class) : 다 채운 EnumSet

  • Enum 싱글톤

  • Enum은 묵시적으로 private 이기 때문에 (바이트 코드 확인해보면 private) 생성자 호출이 불가능하다

enum 정의하는 방법

enum이 제공하는 메소드 (values()와 valueOf())

java.lang.Enum

EnumSet