package thisjavaexam.enumtest.enumis;

public enum EnumGrade {
	BRONZE,
	SILVER,
	GOLD,
	DIAMOND
}

 

이넘 클래스로 바꿨으니 슬슬 수정을 추가해 보자..

 

기존의 클래스를 지워버리니 .. 수정해달라고 오류를 뱉어낸다 .

기존의 참조 FinalGrade 클래스를 삭제해버렸다 .

 

이제 아래 주석의 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을 사용한 클래스로 변경처리 했다. 

+ Recent posts