티스토리 뷰
✨ 7장 퀴즈
<문제>
클래스를 이용해 햄버거를 자동으로 만드는 프로그램을 작성하시오.
< 조건 >
- 햄버거의 종류는 햄버거, 치즈버거, 새우버거 3가지
- 각 버거는 각각의 클래스로 생성
- 버거 이름을 담기 위한 name 변수 정의
- 재료 정보를 표시하는 cook() 메소드 정의
- 공통 부분은 상속 및 메소드 오버라이딩으로 처리
- 모든 클래스는 하나의 파일에 정의
< 조건2 >
- 각 버거의 재료 정보
1) 햄버거: 양상추, 패티, 피클
2) 치즈버거: 양상추, 패티, 피클, 치즈
3) 새우버거: 양상추, 패티, 피클, 새우
< 참고 코드 >
< 실행 결과 >
< 정답 >
class HamBurger {
public String name;
public HamBurger() {
this("햄버거");
}
public HamBurger(String name) {
this.name = name;
}
public void cook() {
System.out.println(this.name + "를 만듭니다.");
System.out.println("빵 사이에 들어가는 재료는?");
System.out.println("> 양상추");
System.out.println("+ 패티");
System.out.println("+ 피클");
}
}
class CheeseBurger extends HamBurger {
public CheeseBurger() {
super("치즈버거");
}
public void cook() {
super.cook();
System.out.println("+ 치즈");
}
}
class ShrimpBurger extends HamBurger {
public ShrimpBurger() { // 생성자
super("새우버거");
}
public void cook() {
super.cook();
System.out.println("+ 새우");
}
}
public class Quiz {
public static void main(String[] args) {
HamBurger[] hamBurgers = new HamBurger[3];
hamBurgers[0] = new HamBurger();
hamBurgers[1] = new CheeseBurger();
hamBurgers[2] = new ShrimpBurger();
System.out.println("주문하신 메뉴를 만듭니다.");
System.out.println("--------------------");
for (HamBurger hamBurger : hamBurgers) {
hamBurger.cook();
System.out.println("--------------------");
}
System.out.println("메뉴 준비가 완료되었습니다.");
}
}
✨ 문제를 풀고 느낀점: 기본적인 틀이 힌트로 나와 있어 접근하기가 편했다. 만약 힌트가 주어지지 않았다면 답안의 틀을 만드는데 어려움이 있었을 것이고 풀 수 있었을지 의문이 든다. 또한, 클래스들의 상속 관계 파악은 잘 됐으나 super에 대한 개념이 명확하지 않아 검색을 통해 힌트를 얻었다. 7장에서 배운 내용을 한번에 사용하는 중요한 문제인 만큼 다시 한번 풀어 완전히 숙지한 후 넘어가도록 하겠다.
출처 : 인프런 '나도코딩의 자바 기본편' 강의
'Algorithm > Java' 카테고리의 다른 글
9장 퀴즈 (0) | 2023.07.03 |
---|---|
자바 기본편 - 상속 (0) | 2023.02.21 |
자바 기본편 - 접근 제어자 (0) | 2023.02.20 |
자바 기본편- Getter 와 Setter (0) | 2023.02.18 |
자바 기본편 - 용어 정리 (0) | 2023.02.13 |