해결된 질문
작성
·
123
·
수정됨
답변 1
0
안녕하세요?
퀴즈에 정답은 없으며 충분히 훌륭하게 잘 풀어주셨습니다.
작성하신 코드로도 퀴즈에서 원하는 요건은 충족하니까요 😍
첨언 드리자면 cook() 이라는 메소드는 그 이름에 맞게 '요리'만 하는 동작으로 사용이 되면 좋습니다. Hamburger 클래스의 경우 cook() 메소드는 요리하는 동작만 있지만 CheeseBurger 의 경우 첫 번째 줄에
this.name = "치즈버거";
와 같이 '요리' 동작에 더하여 이름을 설정하는 부분도 추가로 들어가고 있지요. 그래서 이름을 설정하는 부분은 다음과 같이 각 클래스에 setName() 이라는 메소드를 별도로 분리하는 방법도 생각해볼 수 있습니다.
public void setName(String name) {
this.name = name;
}
그러면 메인 메소드의 동작은 조금 달라져야겠네요.
HamBurger[] hamBurgers = new HamBurger[3];
hamBurgers[0] = new HamBurger();
hamBurgers[0].setName("햄버거"); // 이름 설정
hamBurgers[1] = new CheeseBurger();
hamBurgers[1].setName("치즈버거"); // 이름 설정
이 작업을 보다 수월하게 하기 위해 저는 퀴즈 풀이에서 객체를 생성하면서 동시에 이름을 만들도록 하였습니다. 그리고 각 버거 클래스의 이름은 어차피 정해져 있기 때문에 클래스 내에서 값을 고정해도 괜찮은 상황인거죠.
또한 다음과 같이 혹시 모를 실수로 이름을 잘못 설정하는 일도 방지할 수 있을 것 같아요.
hamBurgers[1] = new CheeseBurger();
hamBurgers[1].setName("새우버거"); // 잘못된 이름 설정
궁금하신 내용에 답변이 되었으면 좋겠습니다.
다시 말씀드리지만 작성하신 코드도 매우 훌륭하게 잘 풀어주셨어요😊
감사합니다.