노트 :

열거형(enum) 본문

JAVA

열거형(enum)

IT_달토끼 2023. 12. 26. 09:30

 

1.  열거형: 관련된 상수들을 같이 묶어 놓은 것.

C언어와 달리 값만 아니라 타입까지 체크하므로 타입에 안전한 열거형(typesafe enum)이라 불림.

 

2. 정의: enum 열거형 이름 { 상수명1, 상수명2, .....};

enum Direction {EAST, WEST, SOUTH, NORTH};

 

3. 열거형 상수의 비교

 

1) ==

enum Direction {EAST, WEST, SOUTH, NORTH};
void compareValues() {
	dir = Direction.EAST;
	if (dir == Direction.EAST) {
    	System.out.println("동등값");
     }
}

 

2) compareTo()

enum Direction {EAST, WEST, SOUTH, NORTH};
void compareValues() {
	dir = Direction.EAST;
	if (dir compareTo(Direction.EAST) == 0) {
    	System.out.println("동등값");
     }
}

 

3) 비교연산자는 사용불가

enum Direction {EAST, WEST, SOUTH, NORTH};
void compareValues() {
	dir = Direction.EAST;
	if (dir < Direction.WEST) {     // 에러발생
    	System.out.println("?");
     }
}

 

 

4) 열거형의 조상: java.lang.Enum

* Enum 클래스에 정의된 메서드

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

 

* 컴파일 시 모든 열거형에 자동으로 제공되는 메서드

메서드 설명
static E values() 열거형의 모든 상수를 배열에 담아 반환
static E valueOf(String name) 문자열 상수에 대한 참조를 반환

 

Direction d = Direction.valueOF("EAST");
System.out.println(d);    // WEST출력

 

 

참고: 자바의 정석(3rd Edition), 남궁 성 저, 도우출판