ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 열거형(enum)
    공부/Java 2024. 4. 29. 23:16

    열거형(enum)

     

    - 관련된 상수들을 같이 묶어 놓은 것

     

    예제

    class Card{
    	enum Kind {CLOVER, HEART, DIAMOND, SPADE}
        	enum Value {TWO, THREE, FOUR}
        
        	final Kind kind;
        	final Value value;
    }

    위 예제는 열거형 상수로 Kind와 Value를 선언한 것이다.

    열거형 상수는 값이 순차적으로 들어가며, Kind의 값은 CLOVER 0, HEART 1 등 순차적으로 값이 들어가진다.

    열거형 상수 Value 역시 순차적으로 들어가지므로 TWO는 0, THREE는 1이다.

     

    - Java는 타입에 완전한 열거형을 제공한다.

     

    예제

    if(Card.Kind.CLOVER == Card.Value.TWO) { }

     

    자바는 값과 타입을 둘 다 비교하며, 타입이 다를 경우엔 비교할 수 없다.

    위와 같이 작성한다면 컴파일 에러가 발생한다.

     

    - 열거형 상수의 비교에 ==와 compareTo()를 사용할 수 있다.

      열거형 상수에 비교연산자는 사용할 수 없다.

     

     

    열거형을 정의하는 방법

    enum 열거형이름 {상수명1, 상수명2, ...}

    정의한 상수를 사용하기 위해선 '열거형이름.상수명'을 사용하면 된다.

    클래스의 static 변수를 참조하는 것과 동일하다.

     

     

    열거형의 조상 - java.lang.Enum (클래스)

    - 모든 열거형은 Enum의 자손이며, 아래의 메서드를 상속받는다.

    메서드 설명
    Class<E> getDeclaringClass() 열거형의 Class 객체를 반환
    String name() 열거형 상수의 이름을 문자열로 반환
    int ordinal() 열거형 상수가 정의된 순서를 반환 (0부터 시작)
    T valueOf(Class<T> enumType, String name) 지정된 열거형에서 name과 일치하는 열거형 상수 반환

     

    - values(), valueOf()는 컴파일러가 자동으로 추가해준다.

    '공부 > Java' 카테고리의 다른 글

    표준 애너테이션  (0) 2024.05.02
    열거형에 멤버 추가하기  (0) 2024.04.30
    지네릭 형변환  (0) 2024.04.28
    지네릭 메서드  (0) 2024.04.25
    와일드 카드  (0) 2024.04.25
Designed by Tistory.