enum 열거형이름 { 상수명1, 상수명2, 상수명3, ...}
enum Seasons {SPRING, SUMMER, FALL, WINTER} // Enum 정의
// 상수는 관례적으로 대문자로 작성
public class Main {
public static void main(String[] args) {
Seasons seasons = Seasons.SPRING; // 특정 값만을
switch (seasons) {
case SPRING:
System.out.println("봄");
break;
case SUMMER:
System.out.println("여름");
break;
case FALL:
System.out.println("가을");
break;
case WINTER:
System.out.println("겨울");
break;
}
}
}
리턴 타입 | 메소드(매개변수) | 설명 |
---|---|---|
String | name() | 열거 객체가 가지고 있는 문자열을 리턴하며, 리턴되는 문자열은 열거타입을 정의할 때 사용한 상수 이름과 동일합니다. |
int | ordinal() | 열거 객체의 순번(0부터 시작)을 리턴합니다. |
int | compareTo(비교값) | 주어진 매개값과 비교해서 순번 차이를 리턴합니다. |
열거 타입 | valueOf(String name) | 주어진 문자열의 열거 객체를 리턴합니다. |
열거 배열 | values() | 모든 열거 객체들을 배열로 리턴합니다. |
특정 경우에 특정 값만을 사용하기 위해서, 다양한 방법을 사용 했었음
// 계절
public static final int SPRING = 1;
public static final int SUMMER = 2;
public static final int FALL = 3;
public static final int WINTER = 4;
// 에스파 멤버
public static final int KARINA = 1;
public static final int GISELLE = 2;
public static final int WINTER = 3; // 계절의 변수명과 곂침
public static final int NINGNING = 4;
interface Seasons {
int SPRING = 1, SUMMER = 2, FALL = 3, WINTER = 4;
}
interface Aespa {
int KARINA = 1, GISELLE = 2, NINGNING = 3, WINTER = 4;
}
Season.WINTER == Aespa.Winter // true
class Seasons {
public static final Seasons SPRING = new Seasons();
public static final Seasons SUMMER = new Seasons();
public static final Seasons FALL = new Seasons();
public static final Seasons WINTER = new Seasons();
}
class Aespa {
public static final Aespa KARINA = new Aespa();
public static final Aespa GISELLE = new Aespa();
public static final Aespa NINGNING = new Aespa();
public static final Aespa WINTER = new Aespa();
}