오답 노트-자바(Java)

24.11.22(금) "1111 말고 1234 부탁드려요. 제발요!" (2단계 키오스크)

writingforever162 2024. 11. 24. 21:39

[문제]

package com.example.kiosk.level2;
// [A] MenuItem 클래스 
public class MenuItem {
    
    // [1] 속성 (== 멤버변수)
    private String name;
    private double price;
    private String description;
    
    // [2] 생성자 (== 조립 설명서)
    public MenuItem(String name, double price, String description) {
        this.name = name;
        this.price = price;
        this.description = description;
    }

    // [3] 기능 (== 메서드)
    public void getEachItem() {
        System.out.println(this.name + "     | W " + this.price + " | " + this.description);
    }
}
package com.example.kiosk.level2;
// [B] 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);

        int menuNumber = 1;
        for (MenuItem eachItem : menuItems) {
            System.out.print((menuNumber++) + ". ");
            eachItem.getEachItem();
            // [문제] getEachItem() 메서드에 이미 println()가 있음
            //       컴퓨터에 두 번 명령할 필요 없도록 한 줄로 줄일 수 없을까?
        }
        System.out.println("0. 종료           | 종료");
    }
}

이미 getEachItem() 메서드에 println() 메서드가 있어서 굳이 print() 메서드를 또 쓰지 않고 필요한 모든 부분을 출력하고 싶었다. 메뉴의 번호까지 getEachItem() 메서드만 호출해서 출력하고 싶었다. 

 

[해결]

(1) 1111 말고 1234 출력하기 by static

(2) 1111 말고 1234 출력하기 by 매개변수