본문 바로가기
Language/java

[Java] 열거형_열거형에 멤버 추가하기

by gamxong 2022. 7. 30.

열거형에 멤버 추가하기

: ordinal()이 열거형 상수가 정의된 순서를 반환하지만, 이 값을 열거형 상수의 값으로 사용하지 않는 것이 좋다

enum Direction { 
	EAST(1), SOUTH(5), WEST(-1), NORTH(10);  // 끝에 ';'를 추가해야 함
    
    private final int value;                 // 정수를 저장할 필드(인스턴스 변수)를 추가
    Direction(int value) { this.value = value }  // 생성자를 추가, // private Direction(int value)와 동일
    
    public int getValue() { return value; }
}

 

 

열거형에 추상 메서드 추가하기

enum Transportation {
	BUS(100) { int fare(int distance) { return distance*BASIC_FARE; }},
    TRAIN(150) { int fare(int distance) { return distance*BASIC_FARE; }},
    SHIP(100) { int fare(int distance) { return distance*BASIC_FARE; }},
    AIRPLANE(300) { int fare(int distance) { return distance*BASIC_FARE; }};
    
    abstract int fare(int dinstance);
    
    protected final int BASIC_FARE;   // protected로 해야 각 상수에서 접근가능
    
    Transportation(int basicFare) {
    	BASIC_FARE = basicFare;
    }
    
    public int getBasicFare() { return BASIC_FARE; }
}

댓글