본문 바로가기

IT/java

Enum 클래스

Java 1.5 버전 이상부터 사용이 가능.

 

열거체 (enumeration type)

상수 정의시 사용.

상수값의 타입 안전성을 보장.

정의한 타입 이외에 타입값을 가진 데이터가 들어올 시 체크함.

// 기존 상수 선언시
public static final String mario = "mario";
public static final String lol = "lol";

// enum을 이용한 상수 선언
enum game {
	mario,
    lol
}


// 기존 상수 사용
String game1 = mario;
game1 = lol;

// 정의한 상수값이 할당 되선 안되지만 
// 기본 java에서는 String에 String을 넣는다고 판단하여 에러가 나지 않음.
game1 = "battle";


// enum 사용
String game2 = game.mario;

//상수값을 체크하기 때문에 에러.
game2 = "battel";

 

아래와 같이 사용할 수 있다.

// enum에서는 상숫값이 설정되는데 
// 첫번째 상숫값은 0부터 그리고 1씩 증가한다.
// 임의로 사용하기 위해서는 괄호를 추가해서 아래와 같이 생성.
enum game {
	battle(1), lol(5), rinage(2), maple(6)
}

// 하지만 이렇게 불규칙한 값을 사용하기 위해서는 인스턴스 변수와 생성자를 다음과 같이 추가해야함.
private final int value;
game(int value) {
	this.value = value;
}
pulbic int getValue() { return value; }