열거형 enums
서로 관련된 상수를 편리하게 선언하기 위한 것.
주로 상태나 옵션을 나타내는데 유용하다.
오타나 잘못된값에 의한 버그를 방지할 수 있다.
enum 열거형이름 {상수명1, 상수명2, ...}
상수 요일이름을 가진 열거형 Day의 코드예시를 확인해보자.
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public class EnumExample {
public static void main(String[] args) {
Day today = Day.MONDAY;
switch (today) {
case MONDAY:
System.out.println("Today is Monday");
break;
case TUESDAY:
System.out.println("Today is Tuesday");
break;
case WEDNESDAY:
System.out.println("Today is Wednesday");
break;
case THURSDAY:
System.out.println("Today is Thursday");
break;
case FRIDAY:
System.out.println("Today is Friday");
break;
case SATURDAY:
System.out.println("Today is Saturday");
break;
case SUNDAY:
System.out.println("Today is Sunday");
break;
}
}
}
Today is Monday
열거형은 다양한 메서드를 가지고있다.
values()열거형(enum)의 모든 상수를 배열로 반환
int ordinal() 열거형 상수의 순서(인덱스)를 반환
Class<E> gerDeclaringClass()열거형 상수가 정의된 열거형 클래스를 반환
String name()열거형 상수의 이름을 문자열로 반환
T valueOf(Class<T> enum Type, String name)지정된 열거형(enum)에서 지정된 이름(name)의 상수를 반환
enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
public class EnumMethodsExample {
public static void main(String[] args) {
// values()
Day[] days = Day.values();
System.out.println("All days: " + Arrays.toString(days));
// ordinal()
Day wednesday = Day.WEDNESDAY;
int ordinal = wednesday.ordinal();
System.out.println("Wednesday's ordinal: " + ordinal);
// getDeclaringClass()
Class<?> declaringClass = wednesday.getDeclaringClass();
System.out.println("Declaring class: " + declaringClass);
// name()
String dayName = wednesday.name();
System.out.println("Wednesday's name: " + dayName);
// valueOf()
String dayToFind = "FRIDAY";
try {
Day foundDay = Day.valueOf(Day.class, dayToFind);
System.out.println("Found day: " + foundDay);
} catch (IllegalArgumentException e) {
System.out.println("Day not found: " + dayToFind);
}
}
}
All days: [SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY]
Wednesday's ordinal: 3
Declaring class: class Day
Wednesday's name: WEDNESDAY
Found day: FRIDAY
'JAVA' 카테고리의 다른 글
Annotation - @Deprecated (0) | 2024.02.15 |
---|---|
각 열거형 상수에 값을 할당하다: enum Sample {data(value)}, getValue() (0) | 2024.02.14 |
제네릭 타입의 형변환 (0) | 2024.02.14 |
다양한 타입의 인자를 처리할 수 있도록 하는 메서드: Generics 제네릭 메서드 (0) | 2024.02.14 |
<? extends *> 와일드카드, 보다 유연한 타입제한 (0) | 2024.02.14 |