- 열거형이란?
- 관련된 상수들을 같이 묶어놓은 것, java는 타입에 안전한 열거형을 제공
public card{
enum Kind {CLOVER, HEART, DIAMOND, SPADE}
enum Value {TWO, THREE, FOUR}
final Kind kind;
final Value value;
if(Card.Kind.CLOVER == Card.Value.TWO){
}
- 열거형 타입의 변수를 선언하고 사용하는 방법
enum Direction {EAST, SOUTH, WEST, NORTH}
class Unit {
int x, y;
Direction dir;
void init(){
dir = Direction.EAST;
}
Direction d1 = Direction.EAST;
Direction d2 = Direction.valueOf("EAST");
Direction d3 = Enum.valueOf(Direction.class,"EAST");
Direction[] dArr = Direction.values();
}
- 열거형 상수의 비교에 ==와 .equals(), compareTo() 사용가능 / 비교연산자 사용 불가!!
comepareTo()란?
왼쪽이 크면 양수, 같으면 0, 오른쪽이 크면 음수
if(dir == Direction.EAST){
x++;
}else if(dir > Direction.WEST){
...
}else if(dir.compareTo(Direction.WEST) > 0){
...
}