1. 롯데리아 앱 만들기
1-1. 기본 버거 만들기 (상태 - 생성자 - getter 는 세트)
1-2. 쉬림프 버거 만들기
1-3. 컴포지션 사용
1-4. 가격 출력
완성된 코드
package ex06.example7;
public class LotteApp {
public static void main(String[] args) {
Burger b1 = new Burger("기본버거", 1000); //[Burger]
Burger b2 = new ShrimpBurger("새우버거", 2000, "새우"); //[Burger, ShrimpBurger]
Coke c1 = new Coke("콜라", 1000);
System.out.println();
BurgerSet set = new BurgerSet(new Burger("기본버거", 1000), new Coke("콜라", 1000));
System.out.println();
System.out.println("총 가격은 : " + set.getTotalPrice());
// System.out.println(set.getBurger().getPrice());
// System.out.println(set.getCoke().getPrice());
}
}package ex06.example7;
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 ex06.example7;
public class ShrimpBurger extends Burger {
private String material; //재료
public String getMaterial() {
return material;
}
public ShrimpBurger(String name, int price, String material) {
super(name, price);
this.material = material;
}
}package ex06.example7;
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 ex06.example7;
//컴포지션 사용
public class BurgerSet { //has 관계. Burger와 Coke를 가짐
private Burger burger;
private Coke coke; //필요한 애들을 상태로 가짐. //생성자로 초기화 할거라 빈값
public BurgerSet(Burger burger, Coke coke) {
this.burger = burger;
this.coke = coke;
System.out.println("버거 세트가 만들어졌어요.");
}
public int getTotalPrice() {
return burger.getPrice() + coke.getPrice();
}
public Burger getBurger() {
return burger;
}
public Coke getCoke() {
return coke;
}
}Share article

















