728x90
열거형 정의
enum 열거형이름 { 상수명1, 상수명2, ... }
자바의 열거형
- 자바의 열거형은 타입에 안전한 열거형(typesafe enum)이라서 실제 값이 같아도 타입이 다르면 컴파일 에러가 발생한다.
- 열거형 상수를 사용하면 기존의 소스를 다시 컴파일하지 않아도 된다.
- 열거형 상수의 값이 불연속적인 경우에는 열거형 상수의 이름 옆에 원하는 값을 괄호( )와 함께 적어주면 된다.
- 그리고 지정된 값을 저장할 수 있는 인스턴스 변수와 생성자를 새로 추가해 주어야 한다.
- 열거형의 인스턴스 변수가 반드시 final이어야 한다는 제약은 없다. 하지만 열거형 상수의 값을 저장하기 위한 것이므로 final을 붙인다.
- 열거형의 생성자는 제어자가 묵시적으로 private이다.
- 외부에서 값을 얻을 수 있도록 인스턴스 변수에 대한 getter를 만들어준다.
열거형 이해
- 사실은 열거형 상수 하나하나가 '해당 열거형'의 객체이다.
- static 상수값들은 객체의 주소가 같기 때문에, '==' 비교가 가능하다.
enum Direction { EAST, SOUTH, WEST, NORTH }
class Direction {
static final Direction EAST = new Direction("EAST")
static final Direction SOUTH = new Direction("SOUTH")
static final Direction WEST = new Direction("WEST")
static final Direction NORTH = new Direction("NORTH")
private String name;
private Direction(String name) {
this.name = name;
}
}
728x90
'Language > Java' 카테고리의 다른 글
함수형 인터페이스와 람다식, 메서드 참조 (0) | 2023.05.24 |
---|---|
Generic (2) | 2023.05.24 |
중첩 클래스 (0) | 2023.05.22 |
정규표현식 메타문자 목록 (0) | 2023.04.15 |
Java Stream Collector (0) | 2023.04.07 |