[JAVA] 12. 상속 Ⅴ. 컴퍼지션 (버거)

최재원's avatar
Feb 17, 2025
[JAVA] 12. 상속 Ⅴ. 컴퍼지션 (버거)
객체 2개를 합쳐서 하나의 세트로 만드는 방법
  • 파일 트리
notion image

1. 버거 객체

package comp; public class Burger { private String name; private int price; public Burger(String name, int price) { this.name = name; this.price = price; System.out.println(name + "가 만들어졌어요."); } public String getName() { return name; } public int getPrice() { return price; } }

2. 콜라 객체

package comp; public class Coke { private String name; private int price; public Coke(String name, int price) { this.name = name; this.price = price; } public String getName() { return name; } public int getPrice() { return price; } }

3. 쉬림프 버거(버거를 상속하는)

package comp; public class ShrimpBurger extends Burger { private String material; public ShrimpBurger(String name, int price, String material) { super(name, price); this.material = material; } public String getMaterial() { return material; } }

4. 버거 세트

package comp; // DI (has) public class BurgerSet { // 다른 객체로부터 의존성을 주입받고 싶을 때 private final Burger burger; private final Coke coke; public BurgerSet(Burger burger, Coke coke) { this.burger = burger; this.coke = coke; } public Burger getBurger() { return burger; } public Coke getCoke() { return coke; } // 사용자를 위한 getter를 만들어 봅시다. public int getTotalPrice() { return burger.getPrice() + coke.getPrice(); } public String getAllNames() { return burger.getName() + " " + coke.getName(); } }

5. 주문

package comp; public class LotteApp { public static void main(String[] args) { // 1. 버거만 주세요 (1000, 버거) Burger buger1 = new Burger("버거", 1000); System.out.println("이름=" + buger1.getName()); System.out.println("가격=" + buger1.getPrice()); // 2. 콜라만 주세요 (500, 콜라) Coke coke1 = new Coke("콜라", 500); System.out.println("이름=" + coke1.getName()); System.out.println("가격=" + coke1.getPrice()); // 3. 쉬림프 버거 주세요 (새우, 2000, 새우버거) Burger shrimp1 = new ShrimpBurger("새우버거", 2000, "새우"); System.out.println("이름=" + shrimp1.getName()); System.out.println("가격=" + shrimp1.getPrice()); // 4. 버거세트 주세요 Burger burger2 = new Burger("버거", 1000); Coke coke2 = new Coke("콜라", 500); BurgerSet burgerSet = new BurgerSet(burger2, coke2); System.out.println("이름=" + burgerSet.getAllNames()); System.out.println("가격=" + burgerSet.getTotalPrice()); } }
notion image
Share article

jjack1