enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}
// 열거 타입 변수에 열거 타입에 정의된 상수 저장하기
Day today = Day.MONDAY;
상수가 어떠한 값을 갖게 하는 등의 더 많은 작업을 보다 더 적은 코드로 가능합니다.
열거형에는 어떠한 데이터가 있는지 몰라도 하나씩 꺼내어 사용할 수 있는 메소드가 있습니다.
import java.util.Calendar;
public class Ex02_EnumWeekExample {
public static void main(String[] args) {
Ex01_Week today = null; // 열거 타입 변수 선언
Calendar cal = Calendar.getInstance();
// Calendar 변수 선언, Caledndar.getInstance() 메소드로 Calendar 객체 생성
int week = cal.get(Calendar.DAY_OF_WEEK); // 일(1) ~ 토(7)까지의 숫자를 리턴
switch(week) {
case 1:
today = Ex01_Week.SUNDAY; break; // 열거 상수 대입
case 2:
today = Ex01_Week.MONDAY; break;
case 3:
today = Ex01_Week.TUESDAY; break;
case 4:
today = Ex01_Week.WEDNESDAY; break;
case 5:
today = Ex01_Week.THURSDAY; break;
case 6:
today = Ex01_Week.FRIDAY; break;
case 7:
today = Ex01_Week.SATURDAY; break;
} // switch
System.out.println("오늘 요일 : " + today);
if(today == Ex01_Week.SUNDAY) {
System.out.println("일요일에는 축구를 합니다.");
} else {
System.out.println("열심히 자바 공부합니다.");
} // if else
} // main()
} // class

: 열거된 모든 원소를 배열에 담아 순서대로 리턴
enum Fruit {
// Fruit의 인스턴스 변수의 color가 red가 된다.
APPLE("red"), PEACH("pink"), BANANA("yellow");
// 사용자들이 변수를 변경하지 않도록 메서드로 얻을 수 있도록 한다.
private String color;
public String getColor() {
return this.color;
}
Fruit(String color) {
System.out.println("Call Constructor " + this);
this.color = color;
// this.color -> 전역
// color -> 지역
}
}
public static void main(String[] args) {
for (Fruit f : Fruit.values()) {
System.out.println(f);
}
}
/* 기대되는 출력값
* APPLE
* PEACH
* BANANA
*/