본문 바로가기
java&eclipse 코딩 알고리즘/20231215

VIPCustomer

by 몽상크리에이터 2023. 12. 15.

package com.tjoeun.customer;

 

// 자식 클래스

// VIP 고객 정보를 기억하는 클래스

// 일반 고객이나 VIP 고객이나 기본적인 고객 정보는 동일하므로 Customer 클래스를 상속받는다.

public class VIPCustomer extends Customer {

 

// 일반 고객 정보에는 없고 VIP 고객 정보에만 있을 필드를 선언한다.

// 1:1 상담원이 배정되고 제품을 구매할 때 가격의 10%를 할인해주고 보너스 포인트는 5%를 적립해준다.

private int agentID; // 담당 1:1 상담원 ID

private double salesRatio; // 추가 할인 비율

 

public VIPCustomer() {

// 부모 클래스에서 private 권한으로 선언된 필드에 접근하면 에러가 발생한다

// customerGrade = "VIP"; //에러

// bonusRatio = 0.05; // 에러

// 상속받은 private 권한으로 선언된 필드의 setter 메소드로 VIP 고객 정보를 넣는다.

setCustomerGrade("VIP");

setBonusRatio(0.05);

salesRatio = 0.1;

}

 

public int getAgentID() {

return agentID;

}

 

public void setAgentID(int agentID) {

this.agentID = agentID;

}

 

public double getSalesRation() {

return salesRatio;

}

 

public void setSalesRation(double salesRation) {

this.salesRatio = salesRation;

}

 

@Override

public String toString() {

return super.toString() + ", 담당자번호=" + agentID + ", 할인율=" + salesRatio;

}

 

// 구매 금액을 인수로 넘겨받아 실제 구매 금액을 계산해서 리턴하는 메소드

public int calcSales(int price) {

price *= (1 - salesRatio);

return price;

}

 

 

// Customer 클래스에서 상속받은 calBonus()메소드는 할인전 금액에 대한 보너스 포인트를 계산하기

// 때문에 VIP 고객의 추가 할인율이 적용된 실제 구매 금액에 대한 보너스 포인트를 계산할 수 없다.

// 따라서 Customer 클래스에서 상속받은 calBonus()메소드를 Override(재정의) 해서 구현한다

// alt + shift + S : Override / Implement

 

// 구매 금액을 인수로 넘겨받아 실제 구매 금액에 따른 보너스 포인트를 계산하는 메소드

@Override

public int calcBonus(int price) {

return (int) (calcSales(price) * getBonusRatio());

}

 

// 심심함녀 VVIP 만들어보기

 

 

 

}

'java&eclipse 코딩 알고리즘 > 20231215' 카테고리의 다른 글

UpDownCastingTest  (0) 2023.12.15
CustomerTest  (0) 2023.12.15
Customer  (0) 2023.12.15
ClassIncludeTest  (0) 2023.12.15
Parent  (0) 2023.12.15