본문 바로가기

language/java

14. [java] 열거 타입

728x90
반응형

열거 상수

 

프로그래밍 언어에서는 상수란 값이 변하지 않는 수이다. 상수를 선언하는 방법은

static final int a = 10;

위처럼 선언하게 된다면 a는 상수로 만들어지고, 이럴경우 a의 값은 어떠한 일이 있어도 변형이 불가능하다.

예를들어 a = 0; 혹은 a += a; 이러한 명령을 실행하면 바로 에러가 날것이다.

이러한 상수들을 편하게 관리해주는 방법이 열거 상수이다. 예를들면 요일은 월화수목금토일이 고정이니, 열거를 해두어서 사용하기 편하게 하는것이다. 만드는 방법은

코드를 생성할 때 패키지에서 

New -> enum으로 파일을 생성해주면 만들어 줄 수 있다.

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

java에서 상수변수는 관례적으로 가능하면 대문자로 생성해주는게 좋다.

 

package chapter5;

import java.time.DayOfWeek;
import java.time.LocalDate;

public class EnumWeekExample {
	public static void main(String[] args) {
		
		Week today = null;
		DayOfWeek week = LocalDate.now().getDayOfWeek();
		int ordinal = week.ordinal();
		System.out.println(ordinal);
		switch(week) {
			case SUNDAY:
				today = Week.SUNDAY;break;
			case MONDAY:
				today = Week.MONDAY;break;
			case TUESDAY:
				today = Week.TUESDAY;break;
			case WEDNESDAY:
				today = Week.WEDNESDAY;break;
			case THURSDAY:
				today = Week.THURSDAY;break;
			case FRIDAY:
				today = Week.FRIDAY;break;
			case SATURDAY:
				today = Week.SATURDAY;break;
		}
		
		System.out.println("오늘 요일: "+ today);
		
		if(today == Week.SUNDAY) {
			System.out.println("일요일에는 열심히 축구를 합니다.");
		}else {
			System.out.println("열심히 자바 공부합니다.");
		}
	}
}

간단한 예제이다. 사실 사용하는 의미가 없는 코드이긴하지만, 연습용이라 생각한다면

Week today는 위에서 enum으로 만들어준 열거 상수를 선언한 것이다.

위의 DayOfWeek 클래스는 현재 날짜를 불러들여올수 있는 클래스이다.

getDayOfWeek로 날짜를 불러들여와서 week에 넣어주고,

현재 week의 값에 따라 (현재 요일) 열거상수 today의 값을 대입해주는 것이다. 그리고 그에따라 출력해주어 보았다.

반응형