티스토리 뷰

프로그래밍/JAVA

Vector+다형성 예제

문정환 2009. 10. 6. 11:07
import java.util.*;
class Product
{
 int price;
 int bounsPoint;
 Product(int price)
 {
  this.price=price;
  bounsPoint=(int)(price/10.0);
 }
}
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 Buyer //물건을 사는 사람
{
 int money=1000; // 소유자 금액
 int bonusPoint=0; // 보너스 점수
 Vector item=new Vector(); // 구입한 제품을 저장하는데 사용될 Vector객체
 
 int i=0;
 void buy(Product p)
 {
  if(money<p.price)
  {
   System.out.println("잔액이 부족하여 물건을 살수 없습니다.");
   return;
  }
  money-=p.price; //가진 돈에서 구입한 제품의 가격을 뺀다.
  bonusPoint+=p.bounsPoint; // 제품의 보너스 점수를 추가한다.
  item.add(p);//구입한 제품을 Vector에 저장한다.
  System.out.println(p+"을/를 구입하셧습니다.");
 }
 void refund(Product p)// 구입한 제품을 환불한다.
 {
  if(item.remove(p))// 제품을 Vector에서 제거한다.
  {
   money+=p.price;
   bonusPoint-=p.bounsPoint;
   System.out.println(p+"을/를 반품하였습니다.");
  }
  else // 제품의 제거에 실패할 경우
  {
   System.out.println("구입하신 제품 중 해당 제품이 없습니다.");
  }
 }
 void summary() // 구매한 물품에 대한 정보를 요약해서 보여준다.
 {
  int sum=0; // 구입한 물품의 가격 합계
  String itemList=""; // 구입한 물품의목록
  
  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+=(i==0)?""+p:", "+p;
  }
 
  System.out.println("구입하신 물품의 총금액은 "+sum+"입니다.");
  System.out.println("구입하신 제품은 "+itemList+"입니다.");
 }
}
public class PolyArgumentTest {
 public static void main(String[] args)
 {
  Buyer b=new Buyer();
  Tv tv=new Tv();
  Computer com=new Computer();
  
  b.buy(tv);
  b.buy(com);
  b.summary();
  
  System.out.println();
  b.refund(com);
  b.summary();
 }
}

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함