본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

열거형 enums 서로 관련된 상수를 편리하게 선언하다

열거형 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