Java 패키지 - 캡슐화된 ShoppingCart
쇼핑몰 장바구니에 담는 코드를 생성해보도록 한다.
아래에 주어진 ShoppingCartMain 코드에서 실행되도록, Item, ShoppingCart 클래스를 생성한다.
요구사항
- 접근 제어자를 사용해서 데이터를 캡슐화한다.
- 해당 클래스는 다른 클래스에서 사용할 수 있어야 한다.
- 데이터 필드는 Item, ShoppingCart 클래스에서 모두 private 으로 설정한다.
- 장바구니는 최대 3개까지 담을 수 있다.
- 3개 초과한 경 메시지 출력 "장바구니가 가득 찼습니다."
ShoppingCartMain.java
package access.foo;
public class ShoppingCartMain {
public static void main(String[] args) {
ShoppingCart cart = new ShoppingCart();
Item item1 = new Item("김치", 4200);
Item item2 = new Item("상추", 2100);
Item item3 = new Item("콜라", 2500);
Item item4 = new Item("고추장", 5500);
cart.addItem(item1);
cart.addItem(item2);
cart.addItem(item3);
cart.addItem(item4);
cart.displayItems();
}
}
출력
장바구니가 가득 찼습니다.
상품명: 김치, 가격: 4200
상품명: 상추, 가격: 2100
상품명: 콜라, 가격: 2500
풀이
Item.java
package access.foo;
public class Item {
private String productName;
private int price;
public Item(String productName, int price) {
this.productName = productName;
this.price = price;
}
public String getProductName() {
return productName;
}
public int getPrice() {
return price;
}
}
ShoppingCart.java
package access.foo;
public class ShoppingCart {
private int counter = 0;
private Item[] items = new Item[3];
public void addItem(Item item) {
if (counter < items.length) {
items[counter++] = item;
} else {
System.out.println("장바구니가 가득 찼습니다.");
}
}
public void displayItems() {
for (int i = 0; i < counter; i++) {
System.out.println("상품명: " + items[i].getProductName() + ", 가격: " + items[i].getPrice());
}
}
}