Java에서 열거형(Enumeration, Enum)은 이름이 지정된 상수들의 집합을 나타냅니다. 열거형은 다음과 같은 문법으로 생성할 수 있습니다.
enum Days {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}열거형의 내용을 가져오려면 values() 메서드를 사용합니다. 이 메서드는 해당 열거형에 포함된 모든 상수 값을 담고 있는 배열을 반환합니다. 배열을 얻은 후에는 for 루프(향상된 for문)를 사용하여 각 요소를 순회할 수 있습니다.
예제 1: 기본적인 열거형 반복
public class IterateEnum{
public static void main(String args[]) {
Days days[] = Days.values();
System.out.println("열거형의 내용: ");
// for 루프를 사용한 열거형 반복
for(Days day: days) {
System.out.println(day);
}
}
}실행 결과
열거형의 내용: SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY
예제 2: 변수와 메서드를 포함한 열거형 반복
열거형은 단순한 상수 목록뿐만 아니라 인스턴스 변수, 생성자, 메서드도 가질 수 있습니다. 아래 예제는 이러한 요소들을 포함한 열거형을 for 루프로 순회하고, 특정 상수의 메서드를 호출하는 방법을 보여줍니다.
enum Vehicles {
// 열거형 상수 선언
ACTIVA125, ACTIVA5G, ACCESS125, VESPA, TVSJUPITER;
int i; // 인스턴스 변수
Vehicles() { // 생성자
}
public void enumMethod() { // 메서드
System.out.println("현재 값: "+Vehicles.this);
}
}
public class Sam{
public static void main(String args[]) {
Vehicles vehicles[] = Vehicles.values();
for(Vehicles veh: vehicles) {
System.out.println(veh);
}
vehicles[3].enumMethod();
}
}실행 결과
ACTIVA125 ACTIVA5G ACCESS125 VESPA TVSJUPITER 현재 값: VESPA
핵심 정리
values()메서드는 열거형의 모든 상수를 배열 형태로 반환합니다.- 반환된 배열은 향상된 for문(for-each)으로 손쉽게 순회할 수 있습니다.
- 배열 인덱스를 이용하면 특정 상수에 직접 접근하여 메서드를 호출하는 것도 가능합니다.