개발

5초만에 이해하는 java enum(자바의 열거형)

mt프로젝트 2016. 11. 15. 03:29
enum season {
    spring, summer, fall, winter;
}

위의은 enum은 아래의 자바 코드와 동일하다.

Class season {
    public final static season spring = new season ();
    public final static season summer = new season ();
    public final static season fall = new season ();
    public final static season winter = new season ();
}


-----------------------------------------

물론 ordinal () 메소드 같은 추가기능들이 몇가지 덧붙여지기는 하지만 기본적으로는 위와 같은 개발패턴을 간결하게 구현하는 것이 enum이다.
즉 enum으로 정의한 season.spring; 은 내부적으로는 public final static season spring = new season (); 의 값을 불러오는 것이다. 여기서 spring은  static 파라미터이기 때문에 별도의 객체생성이 필요없다.

그러니 아래와 같은 형태로 만들고 사용하는것이 가능한 것이다.
enum season {
    spring("봄"), summer("여름"), fall("가을"), winter("겨울");

    public season(String name) {
        this.korName = name;
    }

    private String korName;
    public String getName(){
        return this.korName;
    }
}