개발공부/JAVA

[JAVA] Enum (열거 타입)

jnnjnn 2024. 4. 4. 17:00

열거타입이란?

 

 
 

Enum

몇가지로 한정된 값만을 갖는 타입이다.

한정된 값인 열거 상수를 가지고 열거 상수는 모두 대문자로 작성한다.

 

 

public enum Week{ // 열거 타입 이름

	// 열거 상수 목록
	MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}

 

열거 타입의 사용

열거 타입도 하나의 데이터 타입이므로 변수를 선언하고 사용해야 한다.

Week today;
Week reservationDay;

 

열거 타입 변수에는 열거 상수를 대입할 수 있는데, '열거타입.열거상수' 형태로 작성한다.

또한 열거 타입은 참조 타입이므로 null 값도 대입할 수 있다

 

Week today = Week.SUNDAY;

Week birthday = null;

 

다음은 Calendar를 이용해서 오늘의 요일을 얻는 예제이다.

열거 타입은 주로 switch문과 함께 사용한다

public class WeekExample {
    public static void main(String[] args) {
        Week today = null;

        Calendar cal = Calendar.getInstance();

		// 오늘의 요일 얻기(1~7)
        int week = cal.get(Calendar.DAY_OF_WEEK);

		// 숫자를 열거 상수로 변환해서 변수에 대입
        switch (week) {
            case 1 -> today = Week.SUNDAY;
            case 2 -> today = Week.MONDAY;
            case 3 -> today = Week.TUESDAY;
            case 4 -> today = Week.WEDNESDAY;
            case 5 -> today = Week.THURSDAY;
            case 6 -> today = Week.FRIDAY;
            case 7 -> today = Week.SATURDAY;
        }

        if (today == Week.THURSDAY) {
            System.out.println("목요일 저녁에는 LCK를 봅니다");
        } else {
            System.out.println("열심히 자바를 공부합니다");
        }
    }
}