열거형
- 열거형(Enumeration)은 어떠한 공통된 특징으로 묶어낼 수 있는, 그 종류가 상당히 제한적인 것(원소)들을 열거할(Enumerate) 수 있는 집합이다.
- 열거형이 가지는 원소들은 반드시 정적인 상수(static final)이다. 하지만, 별도로 명시하지는 않는다.
- 열거형 자체는 타입이지만, 열거형이 가지는 원소들은 열거형 타입인 객체이다.
- 열거형
- 구조
[접근 제한자] enum [열거형 이름] [implements] [구현 인터페이스,...]]? {
[원소,...]?
}
열거형 예시
public enum City { // City는 타입임 (참조 타입) - 기초 타입은 객체일 수 없음.
DAEGU, // 객체
SEOUL
}
// DAEGU, SEOUL
// City 타입의 객체, 정적인 상수다.
public static void main(String[] args) throws Exception {
System.out.println( getCode(City.DAEGU) ); // 자동완섬 해줌, 오탈자 방지
System.out.println( getCode(City.SEOUL) );
}
public static String getCode(City city) {
if ( city == City.DAEGU) { // city 와 City.DAEGU 의 스택 주소값이 같기 때문에 == 비교가 가능하다.
return "053";
} else if ( city == City.SEOUL) {
return "02";
} else {
return "?";
}
}
// 053
// 02
- 아래 예제는 DAEGU / SEOUL 이 출력된다.
public class Enum {
public static void main(String[] args) throws Exception {
System.out.println((City.DAEGU));
System.out.println((City.SEOUL));
}
}
// DAEGU
// SEOUL