이번 과제에서 신경쓸 부분🥲
저번 과제 이후 클래스간의 역할을 정리하고 분리하는 작업이 얼마나 중요한지를 깨달았다.
각 레벨을 구현하기 전에는 항상 클래스의 역할을 정리하고 시작하기로 했다 !
요구 사항을 잘 읽고 잘 지키자..
📍 요구사항
MenuItem
- 클래스 생성 후 속성 입력
Main
- MenuItem을 통해 객체 생성 / 이름, 가격, 설명을 세팅
- Array list로 아이템들을 추가
Main (메뉴의 객체 생성) ├── MenuItem (메뉴 속성 등록)
public class MenuItem {
// 속성
String name;
double price;
String detail;
// 생성자
public MenuItem(String name, double price, String detail) {
this.name = name;
this.price = price;
this.detail = detail;
// 개별 속성을 가져올 getter 메서드들
...
}
}
-------------------------------------
public class Main {
public static void main(String[] args) {
...
List<Menuitem> menuitems = new ArrayList<>();
menuitems.add (new Menuitem("ShackBurger", 6.9, "토마토, 양상추, 쉑소스가 토핑된 치즈버거"));
menuitems.add (new Menuitem("SmokeBurger", 8.9, "베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거"));
menuitems.add (new Menuitem("CheeseBurger", 6.9, "포테이토 번과 비프패티, 치즈가 토핑된 치즈버거"));
menuitems.add (new Menuitem("HamBurger", 5.4, "비프패티를 기반으로 야채가 들어간 기본버거"));
for (Menuitem item : menuitems) {
System.out.println( item.getName() + " | " + item.getPrice() + " | " + item.getDetail());
}
System.out.print("메뉴를 선택하세요 : ");
int num = scanner.nextInt();
// switch문으로 입력한 번호에 따라 선택한 버거 보여주기
...
List에 담아야 할때, 저렇게 객체 생성과 동시에 하는게 깔끔한듯 하다List의 데이터를 탐색할 때는 향상된 for문 을 사용하는 것 잊지말자..^^📍 요구사항
Kiosk
- 클래스 생성하기
start함수로 입력,반복문 로직 만들기 (메인에서 하지말고)
- 0 을 입력하면 뒤로가기되거나 종료menuitem을 관리하는 리스트가 존재한다- List는
kiosk의 생성자를 이용하기Main ├── Kiosk (시작-반복 로직, 객체 관리하기) ├── MenuItem (객체 등록하기)
public class Main {
public static void main(String[] args) {
Kiosk kiosk = new Kiosk ();
kiosk.start();
}
}
----------------------------------------------
public class Kiosk {
Scanner scanner = new Scanner(System.in);
List<Menuitem> menuitem = new ArrayList<>();
void wholeMenu () {
menuitem.add(new Menuitem("ShackBurger", 6.9, "토마토, 양상추, 쉑소스가 토핑된 치즈버거"));
menuitem.add(new Menuitem("SmokeBurger", 8.9, "베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거"));
menuitem.add(new Menuitem("CheeseBurger", 6.9, "포테이토 번과 비프패티, 치즈가 토핑된 치즈버거"));
menuitem.add(new Menuitem("HamBurger", 5.4, "비프패티를 기반으로 야채가 들어간 기본버거"));
}
void start () {
System.out.println("키오스크를 시작하려면 아무거나 입력하세요");
scanner.nextLine();
System.out.println("키오스크를 시작합니다");
wholeMenu();
for (Menuitem item : menuitem) {
System.out.println(item.getName() + " | " + item.getPrice() + " | " + item.getDetail());
}
System.out.print("종료는 0 | ");
System.out.print("메뉴를 선택하세요 : ");
int num = scanner.nextInt();
// 기존 main에서 쓰던 switch문 옮겨오기
...
}
}
}
📍 요구사항
Menu
- 클래스 생성 후 list 옮기기
Menuitem을 관리한다- (상위개념-"버거"같은) 카테고리 이름 필드를 만들자
- 카테고리 이름을 반환하는 메서드가 구현되어야 한다
Main ├── Kiosk (입력,실행) ├── Menu (객체 등록하기) ├── MenuItem (객체 등록하기)
Kiosk에서 하고 리스트 관리는 Menu에서 하기 때문에 접근할 수 있도록 getter를 추가했다
난 글렀다..... 뭘 모르는지 몰라서 질문도 못한다 코드가 뒤죽박죽 동물원이다...