오답 노트-자바(Java)

24.11.22(금) "1111 말고 1234 출력하기 by 매개변수" (2단계 키오스크)

writingforever162 2024. 11. 24. 23:00
package com.example.kiosk.level2;
// [1/2] MenuItem 클래스 수정하기
public class MenuItem {

    private String name;
    private double price;
    private String description;
    // [수정 전] 변수 선언: public int menuNum;
    // [수정 후] 사용하지 않기 때문에 삭제

    public MenuItem(String name, double price, String description) {
        this.name = name;
        this.price = price;
        this.description = description;
    }

    // [작성 순서 1] 추가: 매개변수 int menuNum
    public void getEachItem(int menuNum) {

        // [작성 순서 2] this.menuNum 자리에 매개변수 menuNum 넣기
        System.out.println(menuNum + ". " + this.name + "     | W " + this.price + " | " + this.description);
        // [수정 전] System.out.println(this.menuNum + ~ + this.description);
        // [수정 후] System.out.println(menuNum + ~ + this.description);
    }
}
package com.example.kiosk.level2;
// [2/2] main 수정하기

import java.util.*;

public class KioskLvTwo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println();
        System.out.println("[ GRILL&THRILL MENU ]");
        List<MenuItem> menuItems = new ArrayList<>();

        MenuItem basicBurger = new MenuItem("BasicBurger", 6.9, "토마토, 양상추, 쉑소스가 토핑된 치즈버거");
        MenuItem grilledThrill = new MenuItem("GrilledThrill", 8.9, "베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거");
        MenuItem cheeseburger = new MenuItem("Cheeseburger", 6.9, "포테이토 번과 비프패티, 치즈가 토핑된 치즈버거");
        MenuItem hamburger = new MenuItem("Hamburger", 5.4, "비프패티를 기반으로 야채가 들어간 기본버거");

        Collections.addAll(menuItems, basicBurger, grilledThrill, cheeseburger, hamburger);

        // [작성 순서 3] main에서 변수 menuNumber 선언 및 초기화하기
        int menuNumber = 1;

        // [작성 순서 4] menuNumber를 getEachItem()의 매개변수로 넣기
        for (MenuItem eachItem : menuItems) {
            eachItem.getEachItem(menuNumber);

            // [작성 순서 5] 1씩 늘어나도록 추가: menuNumber++;
            menuNumber++;
        }
        System.out.println("0. 종료           | 종료");
    }
}

방법을 다양하게 알면 여러 상황에 맞추어 골라 쓸 수 있겠다 싶었다. 튜터님과 같이 문제를 해결해 나가며 변수 선언을 잊지 않기로 했다. 변수는 수학의 x 같다고 생각하면 코드 구상이 조금은 쉬워졌다.

앞으로는 트러블슈팅(Troubleshooting) 작성 시간을 어떻게 줄일 수 있을지 함께 고민해야겠다. 그래도 직접 내 언어로 정리하고 코드를 다시 써보니 해결 방법을 구한 당일보다도 손에 익은 게 느껴졌다. 이로써 2단계 키오스크 만들기 과제도 얼추 끝났다.