티스토리 뷰


다음 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



댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함