package thisjavaexam.enumtest.enumis;
public enum EnumGrade {
BRONZE,
SILVER,
GOLD,
DIAMOND
}
이넘 클래스로 바꿨으니 슬슬 수정을 추가해 보자..
기존의 클래스를 지워버리니 .. 수정해달라고 오류를 뱉어낸다 .

이제 아래 주석의 2곳을 수정하면 된다.
package thisjavaexam.enumtest.enumis;
public class DiscountGrade {
//파라미터를 String이 아닌 이넘클래스 타입으로 받도록 수정
public int discountPercent(EnumGrade grade, int price) {
int discountPercent = 0;
// (grade.equals(FinalGrade.getBronze()) 에서 수정한다. 문자열과 다르개 enum은 ==도 잘 인식한다.
if (grade == EnumGrade.BRONZE) {
discountPercent = 5;
} else if (grade == EnumGrade.SILVER) {
discountPercent = 10;
} else if (grade == EnumGrade.GOLD) {
discountPercent = 15;
} else if (grade == EnumGrade.DIAMOND) {
discountPercent = 20;
} else {
System.out.println(grade + "할인이 없습니다.");
}
return price * discountPercent / 100;
}
}
실행 부 또한 파라미터 값을 수정하면 된다.
package thisjavaexam.enumtest.enumis;
public class GradePriceMain {
public static void main(String[] args) {
int price = 20000;
DiscountGrade discountGrade = new DiscountGrade();
//문자열을 enum에서 불러오는 형식으로 수정
int bronze = discountGrade.discountPercent(EnumGrade.BRONZE, price);
int silver = discountGrade.discountPercent(EnumGrade.SILVER, price);
int gold = discountGrade.discountPercent(EnumGrade.GOLD, price);
int diamond = discountGrade.discountPercent(EnumGrade.DIAMOND, price);
System.out.println("BRONZE 의 할인율 5% 적용금액 : " + bronze);
System.out.println("SILVER 의 할인율 10% 적용금액 : " + silver);
System.out.println("GOLD 의 할인율 15% 적용금액 : " + gold);
System.out.println("DIAMOND 의 할인율 20% 적용금액 : " + diamond);
}
}
이제 Enum을 사용한 클래스로 변경처리 했다.

'Java_library > Enumeration' 카테고리의 다른 글
| (Java_library) Enum을 사용하는이유_enum사용 후 리팩토링2 (0) | 2025.05.06 |
|---|---|
| (Java_library) Enum을 사용하는이유_enum사용 후 리팩토링1 (0) | 2025.05.06 |
| (Java_library) Enum을 사용하는이유_enum사용1 (0) | 2025.05.06 |
| (Java_library) Enum을 사용하는이유_enum사용전2 (0) | 2025.05.06 |
| (Java_library) Enum을 사용하는이유_enum사용전1 (0) | 2025.05.06 |