Language/Java

[Java] Enum으로 상수 관리

hu6r1s 2023. 10. 27. 21:36

우테코 프리코스 1주차로 숫자 야구 게임을 만들고 참가자 한 분이 static final로 상수를 관리했는데 Enum으로 관리해보라고 하셨다.

Enum을 타입스크립트를 통해서 사용해 본 경험이 있어서 사용하는 방법만 익혔다.

package baseball;

public enum GameConstant {
    STARTING_STRING("숫자 야구 게임을 시작합니다."),
    RESTARING_STRING("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요."),
    ENDING_STRING("3개의 숫자를 모두 맞히셨습니다! 게임 종료"),
    INPUT_STRING("숫자를 입력해주세요 : "),
    STRIKE("스트라이크"),
    BALL("볼 "),
    NOTHING("낫싱"),
    RESTART("1"),
    END("2"),
    SIZE(3),
    RANDOM_START(1),
    RANDOM_END(9);

    private final Object value;

    GameConstant(Object value) {
        this.value = value;
    }

    public String getStringValue() {
        return (String) value;
    }

    public int getIntValue() {
        return (int) value;
    }
}

문자열과 숫자를 따로 구분할지, Game클래스와 User클래스로 나눌지 고민하다 숫자가 3개로 동일해서 문자열과 숫자로 나눌까하다 그냥 한 파일로 만들었다.

사용하는 방법은 GameConstant.`상수명`.getStringValue 또는 GameConstant.`상수명`.getIntValue로 사용하면 된다.