개발동

[예제] 여러 종류의 객체를 배열로 다루기 본문

Programming/Java

[예제] 여러 종류의 객체를 배열로 다루기

DuckFin 2021. 9. 26. 17:07
class Product{
	int price;
	Product(int price){
		this.price = price;
	}
}

class Tv extends Product{
	Tv(){
		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 = 600;
	static int k=0;
	Product [] item = new Product[10];
	
	void buy(Product p) {
		System.out.printf("%s를 구입하셨습니다.\n", p.toString());
		money-=p.price;
		
		item[k++]=p;
	}
	
	void Summary(){
		int sum=0;
		String SummaryTxt="";
		
		for(int i=0; i<item.length; i++)
		{
			if(item[i]==null) break;
			SummaryTxt+= (i==0 ? item[i].toString() : (", "+item[i].toString()));
			sum+=item[i].price;
		}
	
		System.out.printf("구입하신 물품의 총금액은 %d만원입니다.\n", sum);
		System.out.printf("구입하신 제품은 %s 입니다.\n", SummaryTxt);
	}
}

public class PolyArgumentTest2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Buyer b = new Buyer();
		b.buy(new Tv());
		b.buy(new Computer());
		b.buy(new Audio());
		
		b.Summary();
	}
}

Tv를 구입하셨습니다.
Computer를 구입하셨습니다.
Audio를 구입하셨습니다.
구입하신 물품의 총금액은 350만원입니다.
구입하신 제품은 Tv, Computer, Audio 입니다.

'Programming > Java' 카테고리의 다른 글

java, class, bc 파일  (0) 2022.06.28
참조변수와 인스턴스의 연결  (0) 2021.09.26
상속  (0) 2021.09.26
Calendar 클래스  (0) 2021.09.23
난수 생성  (0) 2021.09.23