Enum 열거형은 일정한 상수들의 집합을 정의하는 데이터 타입이다. Java enum클래스는 서로 관련있는 상수들을 하나의 그룹으로 모아 정의할때 사용된다.
Enum은 코드를 보기 쉽게 하고, 유지보수하기도 쉽게 한다. 주로 상태, 옵션, 설정등을 나타내는데 사용된다.
public enum Days {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
enum은 다른 클래스 내부에 정의될 수도 있고, 별도의 파일로 분리 정의될 수 있다.
public class EnumExample {
enum Days {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
public static void main(String[] args) {
Days today = Days.MONDAY;
switch (today) {
case MONDAY:
System.out.println("Today is Monday");
break;
case TUESDAY:
System.out.println("Today is Tuesday");
break;
// 나머지 요일들에 대한 처리
default:
System.out.println("It's some other day");
}
}
}
열거형이름.상수명
클래스의 static 변수를 참조하는 것과 동일함
열거형 비교
"==" , "compareTo()" 사용가능,
enum Days {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
// 사용법
Days[] days = Days.values();
for (Days day : days) {
System.out.println(day);
}
name() : 열거형 상수의 이름을 문자열로 반환한다.
valueOf(String name) 메서드는 해당 Enum 클래스에서 지정된 이름과 일치하는 Enum 상수를 반환한다.
예시
enum Days {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
// 사용법
Days day = Days.valueOf("MONDAY");
System.out.println(day); // 출력: MONDAY
ordinal() 메서드는 Enum 상수의 순서(0부터 시작하는 인덱스)를 반환한다.
enum Days {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
// 사용법
Days day = Days.FRIDAY;
int position = day.ordinal();
System.out.println(position); // 출력: 4
(FRIDAY는 0부터 시작하여 4번째 위치에 있음)
enum Days {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
// 사용법
Days firstDay = Days.MONDAY;
Days secondDay = Days.TUESDAY;
int result = firstDay.compareTo(secondDay);
System.out.println(result); //
출력: 음수 (-1) - MONDAY가 TUESDAY보다 앞에 위치함