연관된 상수들을 원소로 갖는 집합 개념의 클래스
// enum 클래스의 예
public enum ItemSellStatus {
SELL, SOLD_OUT
}
public enum Week {
MONDAY, TUSEDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public enum Gender {
MALE, FEMALE
}
1. enum 클래스 사용 전
public class EnumExam {
public static final String MALE = "MALE";
public static final String FEMALE = "FEMALE";
public static void main(String[] args) {
String gender1;
gender1 = EnumExam.MALE;
gender1 = EnumExam.FEMALE;
}
}
gender1 = "Boy";
2. enum 클래스 사용
enum Gender{
MALE, FEMALE;
}
Gender gender2;
gender2 = Gender.MALE;
gender2 = Gender.FEMALE;
//Gender타입의 변수에는 MALE이나 FEMALE만 대입이 가능. 다른 값은 저장할 수가 없다.
1. enum 클래스 생성자 및 메소드
public enum Color {
RED("빨강",100), GREEN("초록",10), BLUE("파랑",30);
private String ColorName;
private int pay;
// 빨강, 100 순서대로 할당된다.
private Color(String ColorName, int pay){
this.ColorName = ColorName;
this.pay = pay;
}
public void colorInfo(){
System.out.println(ColorName +"의 비용은 " + pay +"입니다.");
}
}
Color.BLUE.colorInfo();
2. enum 클래스 정수 반환 1
public enum Tax {
NONE(0), SALES(10), IMPORT(5);
private final int value;
private Tax(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
...
Tax.SALES.getValue(); // 정수형 반환
3. enum 클래스 정수 반환 2
public enum Week {
MONDAY, TUSEDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
...
Week.MONDAY.ordinal(); // 0 반환