String[]으로 들어가 있던 배열을 ArrayList로 변경하였다.
좋은점 : 인덱스에 내용이 묶여 들어가기 때문에 name,detail의 순서를 맞춰주지 않아도 된다. => 코드 개선됨.
변경전
public class Menu {
public final String[] name ={"Burgers ", "Frozen Custard", "Drinks ", "Beer"};
public final String[] detail={"앵거스 비프 통살을 다져만든 버거","매장에서 신선하게 만드는 아이스크림","매장에서 직접 만드는 음료","뉴욕 브루클린 브루어리에서 양조한 맥주"};
public final String[] bugerMenu={"ShackBurger","SmokeShack","Shroom Burger","Cheeseburger","Hamburger"};
public final String[] bugerDetail={"토마토, 양상추, 쉑소스가 토핑된 치즈버거",
"베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거",
"몬스터 치즈와 체다 치즈로 속을 채운 베지테리안 버거",
"포테이토 번과 비프패티, 치즈가 토핑된 치즈버거",
"비프패티를 기반으로 야채가 들어간 기본버거"
};
public void MenuList(){
for(int i=0; i< 4; i++) {
System.out.println( i+1+"."+" "+name[i]+" |"+detail[i]);
}
}
public void OrderMenu(){
System.out.println("[ ORDER MENU ]");
System.out.println("5. Order | 장바구니를 확인 후 주문합니다.");
System.out.println("6. Cancel | 진행중인 주문을 취소합니다");
}
}
변경후
public class Product extends Menu {
private final double menuPrice;
private ArrayList<Product> productMenu = new ArrayList<Product>(); // product메뉴판
public Product(String name, String detail, double menuPrice) {
super(name, detail);
this.menuPrice = menuPrice;
}
public void LoadProduct() {
Product shackBurger = new Product("ShackBurger", "토마토, 양상추, 쉑소스가 토핑된 치즈버거", 6.9);
Product smokeShack = new Product("SmokeShack", "베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거", 8.9);
Product shroomBurger = new Product("Shroom Burger", "몬스터 치즈와 체다 치즈로 속을 채운 베지테리안 버거", 9.4);
Product cheeseBurger = new Product("Cheeseburger", "포테이토 번과 비프패티, 치즈가 토핑된 치즈버거", 5.4);
Product hamBurger = new Product("Hamburger", "비프패티를 기반으로 야채가 들어간 기본버거", 6.9);
productMenu.add(shackBurger);
productMenu.add(smokeShack);
productMenu.add(shroomBurger);
productMenu.add(cheeseBurger);
productMenu.add(hamBurger);
}
새롭게 알게된것
생성자를 선언해서 productMenu로 추가 할 경우 productMenu[0]은 "ShackBurger", "토마토, 양상추, 쉑소스가 토핑된 치즈버거", 6.9 이다.