class Card{
// 카드 무늬
static final int CLOVER = 0;
static final int HEART = 1;
static final int DIAMOND =2;
static final int SPADE =3;
// 카드 숫자
static final int TWO = 0;
static final int THREE = 1;
static final int FOUR = 2;
final int kind;
final int num;
}
을 열거형으로 바꿔주면
class Card{
enum Kind {CLOVER, HEART, DIAMOND, SPADE}//열겨형 Kind 정의
enum Value {TWO, THREE, FOUR} //열거형 Value를 정의
final Kind kind; // 타입이 int가 아닌 Kind에 유의
final Value value;
}
enum 열거형이름{상수명1, 상수명2,...}
class Unit {
int x, y; // 유닛의 위치
Direction dir; // 열거형 인스턴스 변수를 선언
void init(){
dir = Direction.EAST;// 유닛의 방향을 EAST로 초기화
}
}
if(dir == Direction.EAST){
x++;
}else if(dir > Direction.EAST){ // 에러 열거형 상수에 비교 연산자 사용 불가
...
}else if(dir.compareTo(Direction.WEST) >0){//compareTo()는 사용가능
}
| 메서드 | 설명 |
|---|---|
| Class getDeclaringClass() | 열거형의 Class객체를 반환 |
| String name() | 열거형 상수의 이름을 문자열로 변환 |
| int ordinal() | 열거형상수가 정의된 순서를 반환(0부터 시작) |
| T valueOf(Class enum Type, String name) | 지정된 열거형에서 name과 일치하는 열거형 상수를 반환 |
static E[] values()
static E valueOf(String name)
Direction[] dArr = Direction.values();
for(Direction d : dArr) //for(Direction d : Direction.values())
System.out.printf("$s=%d%n",d.name(),d.ordinal());
👀 참고
자바의정석-enum