package com.example.kiosk.level2;
public class MenuItem {
/*
[멤버 변수]
[a] 객체로 생성될 때 메모리에 저장된다.
[b] 객체마다 주솟값이 다르다.
*/
private String name;
private double price;
private String description;
public int menuNUm;
// [수정 전] public int menuNUm=1;
// [수정 후] public int menuNum;
/*
[정적 변수]
[a] 멤버 변수와 달리 무조건 한 군데에만 저장된다.
[b] 코드가 실행될 때 메모리에 저장되고 프로그램이 종료될 때만 삭제된다.
[c] 즉, static을 자주 쓰면 메모리 낭비가 심해진다.
*/
public static int counter = 1;
// [작성 순서 1] static으로 변수 선언 및 1로 초기화하기
public MenuItem(String name, double price, String description) {
/*
[정적 변수]
[a] 정적 변수만 관리하는 메모리 공간이 따로 있다.
[b] '클래스.변수명' 또는 '클래스.함수명'으로 호출한다.
[c] 멤버 변수와 저장 공간 자체가 다르므로 counter에 this를 붙이지 않는다.
*/
this.menuNUm = counter;
counter++;
// [작성 순서 2] 위의 두 줄 추가
this.name = name;
this.price = price;
this.description = description;
}
public void getEachItem() {
System.out.println(this.menuNUm + ". " + this.name + " | W " + this.price + " | " + this.description);
// [수정 전] this.menuNum++;
// [수정 후] 삭제
}
}
이 방법을 쓰면 메인(main)에서 별도로 수정할 필요가 없었다. 메모리 낭비가 심하다고는 하지만, 한 번 사용했다고 낭비라 말할 필요 또한 없었다.
챗GPT가 계산했다시피 변수 counter가 메모리에서 차지한 공간은 손톱만큼이나 작았으니까.
package com.example.kiosk.level2;
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);
for (MenuItem eachItem : menuItems) {
eachItem.getEachItem();
}
System.out.println("0. 종료 | 종료");
}
}
메인(main)은 건들지 않고 MenuItem 클래스만 수정하여 원하는 대로 번호가 나오도록 수정하는 데에 성공했다.
'오답 노트-자바(Java)' 카테고리의 다른 글
24.11.22(금) "1111 말고 1234 출력하기 by 매개변수" (2단계 키오스크) (0) | 2024.11.24 |
---|---|
24.11.22(금) "1111 말고 1234 부탁드려요. 제발요!" (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 |