Enum
포스트
취소

Enum

특징

  • JDK 1.5부터 사용가능한 열거체

장점

  • 열거체를 비교할 때 실제 값뿐만 아니라 타입까지도 체크한다.
  • 열거체의 상숫값이 재정의되더라도 다시 컴파일할 필요가 없다.

열거체의 정의 및 사용

//원형
enum 열거체이름 { 상수1이름, 상수2이름, ... }
열거체이름.상수이름;

//예시
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }
Rainbow.VIOLET;

열거체의 상숫값 정의 및 추가 (class처럼 사용하기)

enum Rainbow {
    RED(3), ORANGE(10), YELLOW(21), GREEN(5), BLUE(1), INDIGO(-1), VIOLET(-11);

    private final int value;
    Rainbow(int value) { this.value = value; }
    public int getValue() { return value; }
}

values() 메소드

  • 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환한다.
  • 자바의 모든 열거체에 컴파일러가 자동으로 추가해 주는 메소드다.
  • 사용 예시
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }

public class Enum01 {
    public static void main(String[] args) {
        Rainbow[] arr = Rainbow.values();
        for (Rainbow rb : arr) {
            System.out.println(rb);
        }
    }
}

valueOf() 메소드

  • 전달된 문자열과 일치하는 해당 열거체의 상수를 반환한다.
  • 사용 예시
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }

public class Enum02 {
    public static void main(String[] args) {
        Rainbow rb = Rainbow.valueOf("GREEN");
        System.out.println(rb);
    }
}

ordinal() 메소드

  • 해당 열거체 상수가 열거체 정의에서 정의된 순서(0부터 시작)를 반환한다.
  • 반환되는 값은 열거체 정의에서 해당 열거체 상수가 정의된 순서다.
  • 상숫값 자체가 반환되는 것이 아니다.

name() 메소드

  • 해당 열거체 상수의 이름을 반환한다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.