코드 작성 목표 - 4개등급별 할인율을 5~20% 까지 적용하여 구매금액에서 할인되는 내용을 작성
ENUM사용하기 전 Class 단계에서부터 Enum을 사용하는 단계까지 단계별로 포스트를 이어나가기로함 .
나로써는 좋은 연습이 될 것 같다는 생각이 들었다.

먼저 할인율을 계산하기 위해서 클래스 + 매서드를 만들었다.
package thisjavaexam.enumtest.enumis;
//할인율을 계산하는 클래스를 만들어 활용한다.
public class DiscountGrade {
//할인율 계산을 위한 매서드 생성. 등급 과 구매금액을 받아 처리
public int discountPercent(String grade, int price) {
// 할인율 (discountPercent)를 계산하지만 지역변수이므로 초기값 설정필요
int discountPercent = 0;
//각 그레이드 별로 할인율 5~20프로 까지 , 등급이 아니라면 할인없음/ 설정,String으로 비교하므로 == 이 아닌 equals를 활용
if (grade.equals("BRONZE")) {
discountPercent = 5;
} else if (grade.equals("SILVER")) {
discountPercent = 10;
} else if (grade.equals("GOLD")) {
discountPercent = 15;
} else if (grade.equals("DIAMOND")) {
discountPercent = 20;
} else {
System.out.println(grade + "할인이 없습니다.");
}
//최종 할인금액을 계산. 구매금액 * 할인 /100(율)
return price * discountPercent / 100;
}
}
실제 할인율이 적용된 금액을 출력해보자.
package thisjavaexam.enumtest.enumis;
//할인율에 따라 정상적으로 반영되는 메인 클래스 선언
public class GradePriceMain {
public static void main(String[] args) {
//20000원 만큼 결제금액이 있다는 가정
int price = 20000;
//DiscountGrade 클래스의 생성자
DiscountGrade discountGrade = new DiscountGrade();
//생성자를 통해서 bronze에 할인율을 적용
int bronze = discountGrade.discountPercent("BRONZE" , price);
int silver = discountGrade.discountPercent("SILVER", price);
int gold = discountGrade.discountPercent("GOLD", price);
int diamond = discountGrade.discountPercent("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);
}
}

20000원에대한 할인율로 적절하게 잘 적용된 금액으로 반영 되었다 .

하지만, 이렇게 대소문자 구분이 없거나, 오타, 혹은 없는 등급을 정의해도 컴파일 오류가 발생하지않아, 나중에 실행중 오류를 직접 찾아야 하는 문제가 있을 수 있다.

'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사용2 (0) | 2025.05.06 |
| (Java_library) Enum을 사용하는이유_enum사용1 (0) | 2025.05.06 |
| (Java_library) Enum을 사용하는이유_enum사용전2 (0) | 2025.05.06 |