package com.fastcampus.ch3;

class Product {
    int price;
    int bonusPoint;

    Product(int price){
        this.price = price;
        bonusPoint = (int)(price/10.0);
    }
}

class Tv1 extends Product{
    Tv1() {
        super(100);
    }
    public String toString(){return "TV";}
}

class Computer extends Product{
    Computer() {super(200);}
    public String toString() {return "Computer";}
}
class Audio extends Product{
    Audio() {super(50);}
    public String toString() {return "Audio";}
}
class Buyer{
    int money = 1000;
    int bonusPoint = 0;
    Product[] cart = new Product[10];
    int i = 0;

    void buy(Product p){
        if(money < p.price){
            System.out.println("잔액이 부족하여 물건을 살 수 없습니다.");
            return;
        }
        money -= p.price;
        bonusPoint+= p.bonusPoint;
        cart[i++] = p;
        System.out.println(p + "을 구입하셨습니다.");
    }
void summary(){
    int sum = 0;
    String itemList = "";

    for(int i = 0; i< cart.length; i++){
        if(cart[i]==null) break;
        sum += cart[i].price;
        itemList += cart[i].toString() + ", ";
    }
    System.out.println("구입하신 물품의 총 금액은 " + sum + "만원입니다.");
    System.out.println("구입하신 제품은 " + itemList + "입니다.");
}
}

public class Ex7_8 {
    public static void main(String args[]){
        Buyer b = new Buyer();

      /*  Product p = new Tv1();
        b.buy(p);*/
        b.buy(new Tv1());
        b.buy(new Computer());
        b.buy(new Audio());
        b.summary();
        System.out.println("현재 남은 돈은" + b.money + "만원입니다.");
        System.out.println("현재 보너스 점수는" + b.bonusPoint + "점입니다.");
    }
}

'JAVA > Chapter7' 카테고리의 다른 글

Ch7-34_추상클래스의 작성  (0) 2022.02.18
Ch7-31_추상 클래스(abstract class)  (0) 2022.02.18
Ch7-27_매개변수의 다형성  (0) 2022.02.16
Ch7-26_instanceof 연산자  (0) 2022.02.16
Ch7-24_참조변수의 형변환  (0) 2022.02.16
복사했습니다!