관련된 상수들을 하나의 객체에 나열 한것
모든 열거형의 조상은 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 |