관련된 상수들을 하나의 객체에 나열 한것

모든 열거형의 조상은 Enum 클래스

열거형 상수 하나하나[EAST, WEST, SOUTH, NORTH]가 Direction의 객체임.

열거형의 모든 값을 가져오고 싶으면 values()를 사용하여 배열에 넣고 for문 사용

enum Direction { EAST, WEST, SOUTH, NORTH }

Direction dir = Direction.EAST;
Direction dir = Direction.valueOf("EAST");

Direction[] dArr = Direction.values();
    for (Direction d : dArr) {
        System.out.println(d.name());	//EAST, WEST, SOUTH, NORTH
    }

열거형 상수 하나하나[EAST, WEST, SOUTH, NORTH]가 Direction의 객체임.

 

● ordinal() : 열거형 상수가 정의 된 순서 반환(0~))

Direction.EAST.ordinal()

>> 0

 

● compareTo()

열거형 상수의 비교에 == 와 compareTo() 모두 사용 가능. 

compareTo()는 ordinal()로 계산함.

비교연산자 <, > 는 사용 불가

Direction d1 = Direction.EAST;          // ordinal() : 0
Direction d2 = Direction.SOUTH;         // ordinal() : 2
int result1 = d1.compareTo(d2);         // 0-2 = -2
int result2 = d2.compareTo(d1);         // 2-0 = 2

 

열거형 상수의 값이 불연속적일 경우 괄호와 함께 사용( 단, 인스턴스 변수와 생성자를 추가해 주어야함)

enum Direction { 
	EAST(1), WEST(2), SOUTH(-10), NORTH(5); 
    
    int num;
	
    Direction(int num) {
        this.num = num;
    }
}

public class DirectionEx {

	public static void main(String[] args) {
           System.out.println(Direction.EAST.ordinal());	// 0
           System.out.println(Direction.EAST.num);	    	// 1
    }

}

 

 

'Langauge > JAVA' 카테고리의 다른 글

람다식  (0) 2020.06.04
어노테이션(Annotation)  (0) 2020.06.01
쓰레드(Thread)  (0) 2020.05.31
지네릭(Generics)  (0) 2020.05.31
예외처리(try-catch-finally)  (0) 2020.05.22

+ Recent posts