[Java] 12. 상속_5.Composition (Ex.Burger)

김미숙's avatar
Feb 18, 2025
[Java] 12. 상속_5.Composition (Ex.Burger)
 
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; } }
package comp; public class Coke { private String name; private int price; public Coke(String name, int price) { this.name = name; this.price = price; System.out.println(name + " 만들어졌어요"); } public String getName() { return name; } public int getPrice() { return price; } }
package comp; public class ShrimpBurger extends Burger { private String material; // 재료 public ShrimpBurger(String name, int price, String material) { super(name, price); this.material = material; System.out.println(name + " 만들어졌어요"); } public String getMaterial() { return material; } }
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(); } }
package comp; public class LotteApp { public static void main(String[] args) { // 1. 버거만 주세요 (1000, 버거) Burger burger = new Burger("버거", 1000); // 2. 콜라만 주세요 (500, 콜라) Coke coke = new Coke("콜라", 500); // 3. 쉬림프 버거 주세요 (새우, 2000, 새우버거) ShrimpBurger shrimpBurger = new ShrimpBurger("새우버거", 2000, "새우"); // 4. 버거 세트 주세요 Burger burger1 = new Burger("버거", 1000); Coke coke1 = new Coke("콜라", 500); BurgerSet burgerSet = new BurgerSet(burger, coke); System.out.println(burgerSet.getAllNames()); System.out.println(burgerSet.getTotalPrice()); } }
C:\workspace\tools\jdk-21\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.3.2.1\lib\idea_rt.jar=53512:C:\Program Files\JetBrains\IntelliJ IDEA 2024.3.2.1\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\workspace\java_lec\study\out\production\study comp.LotteApp 버거 만들어졌어요 콜라 만들어졌어요 새우버거 만들어졌어요 새우버거 만들어졌어요 버거 만들어졌어요 콜라 만들어졌어요 버거 콜라 1500 Process finished with exit code 0
Share article

parangdajavous