- 관련된 상수들을 같이 묶어 놓은 것. Java는 타입에 안전한 열거형을 제공
열거형의 정의와 사용
- 열거형을 정의하는 방법
enum 열거형이름 { 상수명1, 상수명2, ... }
- 열거형 타입의 변수를 선언하고 사용하는 방법
enum Direction { EAST, SOUTH, WEST, NORTH }
class Unit {
int x, y; // 유닛의 위치
Direction dir // 열거형 인스턴스
void init() {
dir = Direction.EAST; // 유닛의 방향을 EAST로 초기화
}
}
- 열거형 상수의 비교에 ==와 compareTo() 사용가능
* 열거형 상수에 비교연산자 사용불가
열거형의 조상 - java.lang.Enum
- 모든 열거형은 Enum의 자손이며, 아래의 메서드를 상속받는다.
- values(), valueOf()는 컴파일러가 자동으로 추가
열거형에 멤버 추가하기
- 불연속적인 열거형 상수의 경우, 원하는 값을 괄호()안에 적는다.
enum Direction { EAST(1), SOUTH(5), WEST(-1), NORTH(10) }
- 괄호를 사용하려면, 인스턴스 변수와 생성자를 새로 추가해 줘야 한다.

- 열거형의 생성자는 묵시적으로 private이므로, 외부에서 객체생성 불가
Direction d = new Direction(1); // 에러, 열거형의 생성자는 외부에서 호출 불가
'Programming > 자바(Java)' 카테고리의 다른 글
13-1 프로세스와 쓰레드 (0) | 2024.10.18 |
---|---|
12-23 애너테이션이란? (2) | 2024.10.17 |
12-12 와일드 카드 / 제네릭 메서드 (0) | 2024.10.17 |
12-9 제한된 제네릭 클래스 / 제네릭스의 제약 (1) | 2024.10.17 |
12-8 HashMap<K,V> (0) | 2024.10.15 |