[문제]
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() 메서드만 호출해서 출력하고 싶었다.
[해결]
'오답 노트-자바(Java)' 카테고리의 다른 글
24.11.22(금) "1111 말고 1234 출력하기 by 매개변수" (2단계 키오스크) (0) | 2024.11.24 |
---|---|
24.11.22(금) "1111 말고 1234 출력하기 by static" (2단계 키오스크) (0) | 2024.11.24 |
24.11.13(수) "변수 전용 작명소는 없나요?" (1단계 계산기) (0) | 2024.11.24 |
24.11.06(수) "뭐야, 내 3만 원 돌려줘요." (0) | 2024.11.07 |
24.11.03(일) "i냐 g냐, 그것이 문제로다." (0) | 2024.11.03 |