자바의 정석을 통해 공부한 내용을 요약하였습니다
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{
// 0 1 2 3
enum Kind { CLOVER, HEART, DIAMOND, SPADE }; // 열거형 Kind 정의
// 0 1 2
enum Value { TWO, THREE, FOUR }; // 열거형 Value 정의
final Kind kind;
final Value value;
}
if(Card.CLOVER == Card.TWO) // true이지만 false어야 의미상 맞음
if(Card.Kind.CLOVER == Card.Value.TWO) // 컴파일 에러, 값은 같으나 타입이 다름
enum 열거형이름 { 상수명1, 상수명2, ....}
enum Direction {EAST, SOUTH, WEST, NORTH}
Direction dir = Driection.EAST;
switch(dir)
{
case EAST: // Direction.EAST라고 쓸 수 없다.
System.out.println("The direction is EAST.");
break;
case SOUTH:
System.out.println("The direction is SOUTH.");
break;
case WEST:
System.out.println("The direction is WEST.");
break;
case NORTH:
System.out.println("The direction is NORTH.");
break;
default:
System.out.println("Invalid direction.");
break;
}
Direction[] dArr = Direction.values();
for(Direction d : dArr) // for(Direction d : Direction.values())
System.out.printf("%s=%d%n", d.name(), d.ordinal());
enum Direction { EAST(1), SOUTH(5), WEST(-1), NORTH(10) }
enum Direction{
EAST(1), SOUTH(5), WEST(-1), NORTH(10); //끝에 ;를 추가
private final int value; // 정수를 저장할 필드 추가
Direction(int value) { this.value = value; } // 생성자 추가
public int getValue() { return value; }
}