enum 열거형이름 { 상수명1, 상수명2, ... }
열거형이름.상수명
enum Direction { EAST(1), SOUTH(5), WEST(-1), NORTH(10) };
enum Direction { EAST(1, ">"), SOUTH(5, "<"), WEST(-1, "-"), NORTH(10, "+") };
enum Trasportation {
BUS(100) { int fare(int distance) { return distance*BASIC_FARE;}},
TRAIN(150) { int fare(int distance) { return distance*BASIC_FARE;}};
protected final int BASIC_FARE; // protected로 해야 각 상수에서 접근 가능
Transportation(int basicFare) {
BASIC_FARE = basicFare;
}
public int getBasicFare() { return BASIC_FARE; }
abstract in fare(int distance); // 추상메서드 (모든 열거형상수가 다 구현해야 함)
}
java의 정석 chapter12