name() : 열거형 상수의 이름을 문자열로 반환한다.
ordinal() : 열거형 상수가 정의된 순서값(index)을 반환한다. (0부터 시작)
valueOf(”열거형상수명”) : 지정된 열거형에서 ‘열거형상수명’과 일치하는 열거형 상수를 반환한다.
열거형이름.상수명 : valueOf()메서드와 같다.
열거형이름.values() : 모든 열거형 상수들을 배열로 반환한다.
enum 열거형이름{ 상수명1, 상수명2, 상수명2, …}package enumTest;
public class ConstTest {
public static final int RED = 1;
public static final int GREEN = 2;
public static final int BLUE = 3;
public static final int ONE = 1;
public static final int TWO = 2;
public static final int THREE = 3;
}
--------------------------------------------------------------------------
package enumTest;
public class EnumTest {
public enum Color{RED, GREEN, BLUE}
public enum Count{ONE, TWO, THREE}
public static void main(String[] args) {
Color mycol = Color.valueOf("RED"); //Color.RED와 같다.
Count mycnt = Count.THREE; // Count.valueOf("THREE")와 같다.
System.out.println("mycol : " + mycol.name());
System.out.println("mycnt : " + mycnt.name());
System.out.println();
System.out.println("mycol ordinal : "+ mycol.ordinal());
System.out.println("mycnt ordinal : "+ mycnt.ordinal());
System.out.println();
// 서로 다른 종류의 열거형끼리의 비교는 불가하다.
// if(mycol==mycnt) {
// System.out.println("....");
// }
if(mycol == Color.RED) {
System.out.println("같다...");
}
System.out.println();
//switch의 case문에 열거형을 배치할 때는 '열거형이름'을 생략하고
//상수명만 기술해야 한다.
switch(mycnt) {
case Count.ONE : System.out.println("ONE"); break; (X)
case Count.TWO : System.out.println("TWO"); break; (X)
case Count.THREE : System.out.println("THREE"); break; (X)
}
switch(mycnt) {
case ONE : System.out.println("ONE"); break; (o)
case TWO : System.out.println("TWO"); break; (o)
case THREE : System.out.println("THREE"); break; (o)
}
for(Color col : Color.values()) {
System.out.println(col + " ==> " + col.ordinal());
}
}
mycol : RED
mycnt : THREE
mycol ordinal : 0
mycnt ordinal : 2
같다...
RED ==> 0
GREEN ==> 1
BLUE ==> 2
enum 열거형이름 { 상수명1(값들,..), 상수명2(값들,…)….상수명n(값들,…); }private 자료형이름 변수명; (개수만큼 만들어줌)