Jam's story

다형성 예제+ Vector 본문

자바

다형성 예제+ Vector

애플쩀 2022. 3. 20. 22:45
package days22;

import java.util.Vector;

/**
 * @author 지민
 * @date 2022. 3. 20. - 오후 3:31:17
 * @subject 
 * @content 
 * 
 */
public class Ex01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Buyer b=new Buyer();
		b.buy(new Tv());
Computer com=new Computer();
b.buy(com);
		b.buy(new Audio());
		b.summary();
		b.refund(com);
	}}
class Product{
	int price;
	int bonusPoint;
	Product(int price){
		this.price=price;
		bonusPoint=(int)(price/10.0);
		
	}
}
class Tv extends Product{
	Tv(){
		super(200);
	}

	@Override
	public String toString() {
		return "Tv";
	}
	
}
class Computer extends Product{
	Computer(){
		super(300);
	}

	@Override
	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;
Vector item=new Vector();
	int i=0;
	void buy(Product p){
		if(money<p.price){
			System.out.println("잔액이 부족함");
			return;
		}
		item.add(p);
		money-=p.price;
		bonusPoint+=p.bonusPoint;
		System.out.println(p+"를 구입하셨습니다.");
		
	}
	
	void refund(Product p) {
		if(item.remove(p)) {
			money+=p.price;
			bonusPoint-=p.bonusPoint;
			System.out.println(p+"를 반품했어요 ");
		}
	}
	void summary() {
		int sum=0;

		StringBuffer itemList=new StringBuffer();
		
	
		if(item.isEmpty()) {
			System.out.println("구입한게 없어");
			return;
		}
		for(int i=0; i<item.size(); i++) {
			Product p=(Product)item.get(i);
			sum+=p.price;
			itemList .append((i==0) ? " "+p : ","+p);
		}
		System.out.println("구입한 물품 총 가격:"+sum);
		System.out.println("구입하신 제품은 "+itemList);
	}
}
Comments