본 글은 우아한 테크코스 프리코스 1주차 미션 중 공부한 내용을 기록한 것이다.
-> 우아한 테크코스 프리코스 1주차 미션 java-onboarding
-> 필자가 제출한 코드
-> 1주차 미션 회고
public enum UnitsOfBill {
FIFTY_THOUSAND,
TEN_THOUSAND,
FIVE_THOUSAND,
ONE_THOUSAND,
FIVE_HUNDRED,
ONE_HUNDRED,
FIFTY,
TEN,
ONE;
}
int money = 5000;
if (money == 5000) {
return UnitsOfBill.FIFTY_THOUSAND;
}
public enum UnitsOfBill {
FIFTY_THOUSAND(50000),
TEN_THOUSAND(10000),
FIVE_THOUSAND(5000),
ONE_THOUSAND(1000),
FIVE_HUNDRED(500),
ONE_HUNDRED(100),
FIFTY(50),
TEN(10),
ONE(1);
private final int amountOfMoney;
UnitsOfBill(int money){
this.amountOfMoney = money;
}
public int getAmountOfMoney(){
return this.amountOfMoney;
}
}
각각의 열거 상수는 '객체'이고, 설정한 멤버 변수는 수정할 수 없는 '상수' 이다.
즉, 생성자를 통해서만 초기화 할 수 있으므로 생성자를 만들어 주어야 한다.
UnitsOfBill(int money){...}
해당 생성자는 기본적으로 private 이기 때문에 외부에서 new 연산으로 생성할 수 없다.
멤버 변수는 private으로 설정되므로, 이를 외부에서 가져다 쓸 수 있도록 Getter를 만들어 주어야 한다.
public int getAmountOfMoney() {...}
열거 상수들(열거 객체들)은 모두 java.lang.Enum 클래스를 상속받기 때문에 name(), ordinal(), valueOf(String name), values() 메소드를 사용할 수 있다.
name() : 해당 열거 상수의 이름을 반환한다.
ordinal() : 해당 열거 상수의 인덱스를 반환한다. 열거 상수들이 나열된 순서대로 0번 인덱스부터 매겨진다.
valueOf(String name) : 전달된 문자열과 일치하는 열거 상수(열거 객체)를 반환한다.
values() : 열거 상수들을 저장한 배열을 생성하여 반환한다.