제 홈페이지의 모든 글은 anti-nhn license에 따릅니다.



java enum 정리 2 - enum의 메쏘드

모든 예제는 지난 글에서 썼던 Gender를 그대로 사용합니다. 코드는 아래와 같습니다.

public enum Gender {
    MALE, FEMALE
}

Static Methods

기본으로 정의되는 static method는 모두 3가집니다.

1. valueOf(String arg)

String 으로 넘긴 값을 기준으로 enum의 원소를 가져 옵니다. 즉, Gender.MALE 과 Gender.valueOf("MALE")은 같습니다.


2. valueOf(Class<T> class, String arg)

클래스를 넘겨서 받습니다. 즉, Gender.MALE 와 Gender.valueOf(Gender.class, "MALE"); 는 같습니다. 사실 valueOf(String arg)는 내부적으로 이 메쏘드를 호출합니다.


3. values()

이건 지난 시간에 설명한 그대로 enum의 요소들을 enum 타입의 배열로 리턴합니다. Gender.values() 는
new Gender[]{Gender.MALE, Gender.FEMALE} 와 같은 값을 가집니다.



Static이 아닌 Method


1. name()
호출된 값의 이름을 리턴합니다.
Gender.MALE.name() 은 "MALE" 이라는 String 값을 가져옵니다.

2. ordinal()
정의된 순서를 리턴합니다. 0부터 시작합니다.
즉, Gender.MALE.ordinal() 은 0을 Gender.FEMALE.ordinal()은 1을 리턴합니다.

3. compareTo(E o)
E는 자기 자신입니다. 예제로 쓴 Gender의 경우는 Gender가 될 겁니다.
이는 ordinal()을 호출해서 비교합니다. 요소들 간에 어떤 순서가 있을 때 쓰면 됩니다.(요일이 좋은 예가 되겠습니다.)
모든 enum은 Comparable을 구현하고 있습니다. Comparable 인터페이스에는 정의된 compareTo 메쏘드를 구현한 것입니다. 더 자세한 것은 다음 글에서 다루겠습니다.

기타 다른 메쏘드들은 java.lang.Object에 정의된 메쏘드들이거나 java.lang.Class에서 따온 메쏘드들이므로 설명하지 않겠습니다.


enum의 확장

Gender 별로 웃음 소리를 저장하려고 합니다. Gender를 다음과 같이 변경시킵니다.

public enum Gender {
    MALE("하하")
    , FEMALE ("호호");
   
    private String sound;
    Gender(String arg){
        this.sound = arg;
    }
    String getSound(){
        return sound;
    }

}

일반적인 class의 생성자나 메쏘드를 만들 듯이 만들면 됩니다.
위의 코드의 경우 Gender.MALE.getSound()는 "하하"를 리턴합니다.

by 삼실청년 | 2008/05/08 21:58 | 컴터질~ | 트랙백 | 핑백(1) | 덧글(1)

트랙백 주소 : http://iilii.egloos.com/tb/4345025
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at 건실성실착실 3실 청년! : .. at 2008/05/08 22:01

... enum에 대해서 총 3부작으로 연재를 할려고 합니다.1 - 기본 개념2 - enum의 메쏘드3 - java.lang.Enum 클래스와 enum의 실체이 글은 그 첫번째로 enum에 대한 개념을 잡는 글입니다.enum은 비스무레한 원소들이 상수로 정의되는 ... more

Commented by 감사용 at 2018/05/28 13:52
제가 기본이 넘 부족한 것 같아요. 그래도 덕분에 value, valueOf 메소드 감잡았어요. 감사합니다~

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶