티스토리 뷰
다음 BasketTest의 메인 메소드에서 Buyer 클래스 객체 변수의 buy 메소드를 이용하여
각각의 제품을 구매한다. 이 때 각 물품은 Product 클래스를 상속받은
Tv, Audio, Computer 클래스의 객체이며 매개변수로 전달된다.
만약 buyer의 소지 금액이 모자라면 메시지를 출력하고 물품을 구매하지 않고
돈이 충분하다면 돈을 제하고 구매를 한다. 이 물품은 카트에 담긴다.
카트에 들어가는 제품은 3개로 초기화되고 용량이 부족해지면 2배로 용량을 늘린다.
public class BasketTest {
public static void main(String arg[]) {
Buyer b = new Buyer();
b.buy(new Tv());
b.buy(new Computer());
b.buy(new Audio());
// 100+200+50 = 350
b.buy(new Computer());
b.buy(new Audio());
b.buy(new Computer());
b.buy(new Tv());
// 200+50+200+100 = 550
b.summary();
}
}
class Product {
int price;
Product(int price) {
this.price = price;
}
}
class Tv extends Product {
Tv() {
super(100);
}
public String toString() {
return "tv";
}
}
class Audio extends Product {
Audio() {
super(50);
}
public String toString() {
return "Audio";
}
}
class Computer extends Product {
Computer() {
super(200);
}
public String toString() {
return "Computer";
}
}
class Buyer {
int money = 275;
Product[] cart = new Product[3];
int i = 0;
void buy(Product p) {
if (money < p.price) {
System.out.println("잔액이 부족하여 " + p.toString() + "를 살 수 없습니다.");
return;
} else {
money -= p.price;
add(p);
}
}
void add(Product p) {
if (cart.length == i) {
Product[] temp = new Product[cart.length * 2];
for (int i = 0; i < cart.length; i++) {
temp[i] = cart[i];
}
cart = temp;
}
cart[i++] = p;
}
void summary() {
int temp = 0;
for (int j = 0; j < i; j++) {
temp += cart[j].price;
}
System.out.print("구입한 물건 : ");
for (int j = 0; j < i; j++) {
System.out.print(cart[j].toString() + ",");
}
System.out.println("\n장바구니에 담긴 물건들의 총 가격은 " + temp);
System.out.println("남은 돈은 " + money);
}
}
결과 :
잔액이 부족하여 Computer를 살 수 없습니다.
잔액이 부족하여 Computer를 살 수 없습니다.
잔액이 부족하여 Computer를 살 수 없습니다.
잔액이 부족하여 tv를 살 수 없습니다.
구입한 물건 : tv,Audio,Audio,
장바구니에 담긴 물건들의 총 가격은 200
남은 돈은 75
'java,web study > 3주차 (7월 15일 ~21일)' 카테고리의 다른 글
Class (0) | 2013.07.16 |
---|---|
System 클래스 (시간 관련) (0) | 2013.07.16 |
Warpper 클래스, Auto Boxing (0) | 2013.07.16 |
다형성 - 다운캐스팅 실행 에러 (0) | 2013.07.16 |
7월 15일 미션 - 은행업무 프로그램 (0) | 2013.07.16 |
- Total
- Today
- Yesterday
- 정보
- ERP
- 청주
- 메모장
- 소켓
- 배열
- HTML
- 오라클
- 안드로이드
- SVN
- db
- 알고리즘
- 정렬
- 프로젝트
- 충북대
- 클래스
- 졸업작품
- 자바스크립트
- 데이터베이스
- 게임
- JQuery
- 자바
- SQL
- 잡담
- 이론
- 파이썬
- CSS
- 도전과제
- 아두이노
- jsp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |