관리 메뉴

CASSIE'S BLOG

[슈퍼코딩] 34-1강 객체 상속 실무 본문

PROGRAMMING/슈퍼코딩 강의 정리

[슈퍼코딩] 34-1강 객체 상속 실무

ITSCASSIE1107 2023. 12. 14. 13:18
반응형

보너스 포인트를 스스로 쌓는게 편하다는데?
코드구현과 실제는 차이가 있다. 
자기가 보너스포인트갖고있으면 코드구현상은 자기가 계산하는게편하다 다른 객체가 계산하는 것보다 
현실세계에서는 포인트 적립은 점원이 하겠죠

 

스스로 적립하는 기능으로 할거라고함. 

 

최종적으로 돈 내는 건 그냥 return price;

 

 

package exercise.chapter_34;

public class Customer {
    // 속성
    static int serialNums = 1;

    protected String customerID;
    protected String name;
    protected String customerGrade;

    protected int bonusPoint;
    protected double bonusPointRatio;

    // 행위
    public int calculatePrice(int price){
        this.bonusPoint += price * bonusPointRatio;
        return price;
    }

    Customer(){}
    public Customer(String name){
        this.customerID = "Customer" + serialNums++;
        this.name = name;
        this.customerGrade = "SILVER";
        this.bonusPointRatio = 0.01;
        this.bonusPoint = 0;
    }

    public void printMyInfo(){
        System.out.printf("Customer(customerId=%s, name=%s, customerGrade=%s, bonusPoint=%d)\n",
                          this.customerID, this.name, this.customerGrade, this.bonusPoint);
    }

}

 

 

가격이 들어오면은 나 스스로 포인트를 쌓고 그리고 다시 그 가격을 내뱉는다. 

 

 

// 행위
public int calculatePrice(int price){
    this.bonusPoint += price * bonusPointRatio;
    return price;
}

 

그리고 일단 Customer 객체를 만들어야 뭐가 되니까. 

추적하는 값을 만들어서 생성자에 적용해서 순차적으로 customerID 늘어나게 해주기. 

 

static int serialNums = 1;

 

Customer(){}
public Customer(String name){
    this.customerID = "Customer" + serialNums++;
    this.name = name;
    this.customerGrade = "SILVER";
    this.bonusPointRatio = 0.01;
    this.bonusPoint = 0;
}

 

 

반응형