enum(열거형)


열거형의 속성 및 메소드

name() : 열거형 상수의 이름을 문자열로 반환한다.

ordinal() : 열거형 상수가 정의된 순서값(index)을 반환한다. (0부터 시작)

valueOf(”열거형상수명”) : 지정된 열거형에서 ‘열거형상수명’과 일치하는 열거형 상수를 반환한다.

열거형이름.상수명 : valueOf()메서드와 같다.

열거형이름.values() : 모든 열거형 상수들을 배열로 반환한다.

열거형 선언하기

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
  1. ‘값’들이 저장될 변수들 선언 private 자료형이름 변수명; (개수만큼 만들어줌)