Practice JAVA - 열거 타입

최정환·2022년 12월 12일
0

Practice JAVA

목록 보기
5/10

열거 타입

한정된 값인 열거 상수 중에서 하나의 상수를 저장하는 타입


public enum Week {
	MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}

Week today;

today = Week.FRIDAY;

열거 타입 선언

열거 타입을 선언하기 위해서는 열거 타입의 이름으로 소스 파일을 생성해야한다.

Week.java 라는 파일 생성 후 위의 enum 코드 작성
일반적으로 열거 상수는 대문자로 작성하며 단어를 끊어써야 하는 경우 snake_case를 사용한다.

열거 타입 변수

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

Week today;

today = Week.FRIDAY;

참조 타입 변수는 객체를 참조하는 변수라고 알고 있는데 열거 상수도 마찬가지로 객체이다.

열거 상수는 열거 객체로 생성된다. 따라서 heap 영역에서 생성된 객체를 메소드 영역에 생성된 열거 상수가 해당 객체를 각각 참조하게 된다.

열거 타입 사용해 보기

import java.util.Calendar;

public class enumType {
    public static void main(String[] args) {
        // 일주일 중 오늘이 월요일이라면 나는 공부를 한다
        // calendar는 일주일의 기준을 일요일로 시작한다 => today에서 1은 일요일
        Calendar now = Calendar.getInstance();
        int today = now.get(Calendar.DAY_OF_WEEK);
        Week weekOfToday =  Week.MONDAY;
        switch (today){
            case 1 : weekOfToday = Week.SUNDAY; break;
            case 3 : weekOfToday = Week.TUESDAY; break;
            case 4 : weekOfToday = Week.WEDNESDAY; break;
            case 5 : weekOfToday = Week.THURSDAY; break;
            case 6 : weekOfToday = Week.FRIDAY; break;
            case 7 : weekOfToday = Week.SATURDAY; break;
        }

        myJobToday(weekOfToday);
    }


        private static void myJobToday(Week today){

         switch (today) {
             case SUNDAY : System.out.println(Week.SUNDAY + "오늘은 노는 날입니다."); break;
             case MONDAY : System.out.println(Week.MONDAY + "오늘은 공부하는 날입니다."); break;
             default: System.out.println("오늘은 노는 날입니다."); break;
        };

        };
}

0개의 댓글