목록2024/07 (4)
SW
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lFZH6/btsIPZ49stW/nD0ri3rr906o3GV5ZdSh41/img.jpg)
1. 최첨단 피자 코드 만들기피자 종류를 고르고 그에 맞는 피자를 만드는 코드를 작성해야 합니다. 초기 코드public class PizzaStore { public Pizza orderPizza(String type) { Pizza pizza = null; if (type.equals("cheese")) { pizza = new CheesePizza(); } else if (type.equals("greek")) { pizza = new GreekPizza(); } else if (type.equals("pepperoni")) { pizza = new PepperoniPizza(); ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bpciAr/btsIOJvsuSb/qwj3PZD80KLQmiy4Hpbbrk/img.jpg)
1. 초대형 커피 전문점, 스타버즈현재는 매우 많은 스타버즈 매장이 존재합니다.하지만 워낙 빠르게 성장하다보니 다양한 음료를 모두 포괄하는 주문 시스템을 갖추지 못했습니다.초기 주문 시스템 클래스는 아래와 같았습니다. Beverage는 음료를 나타내는 추상 클래스이며, 모든 음료는 Beverage 클래스의 서브클래스가 됩니다.모든 서브클래스는 가격을 리턴하는 cost() 메소드를 구현해야 합니다. // Beverage.javapublic abstract class Beverage { String description = "Unknown Beverage"; public String getDescription() { return description; } public ab..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pTNaM/btsIy5RGGvW/IcziHNCt2g8Pl1DmHtKCf0/img.jpg)
1. 기상 모니터링 애플리케이션 알아보기기상 스테이션 : 실제 기상 정보를 수집하는 물리 장비WeatherData 객체 : 기상 스테이션으로부터 오는 정보를 추적하는 객체디스플레이 장비 : 사용자에게 현재 기상 조건을 보여주는 장비 WeatherData 객체로 현재 조건, 기상 통계, 기상 예보, 이렇게 3가지 항목을 디스플레이 장비에서 갱신해 가면서 보여 주는 애플리케이션을 만들어야 합니다. 2. WeatherData 클래스 살펴보기기상 스테이션에서 갱신된 데이터를 가져오는 일은 WeatherData 객체가 알아서 해줍니다.WeatherData에서 갱신된 값을 가져올 때마다 measurementChanged() 메소드가 호출됩니다. /* * 기상 관측값이 * 갱신될 때마다 * 이 메소드가 호출됩니다. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/BqORt/btsIzbD84Jn/ILJEyaYTFnE94YUocGFkjk/img.jpg)
1. 오리 시뮬레이션 게임, SimUduck모든 오리는 꽥(quack) 소리를 낼 수 있고, 헤엄(swim)을 칠 수 있으므로 quack, swim 메소드는 슈퍼클래스로 작성합니다.모든 오리의 모양이 다르므로 display 메소드는 추상 메서드로 작성하고, 오버라이드 합니다. 2. 상속을 생각하기일부 오리가 하늘을 날아야 하는 기능을 추가해달라는 요청이 들어왔습니다.슈퍼클래스인 Duck에 fly를 추가해봅니다. 그럼 모든 오리는 날게 됩니다.날지 못하는 고무오리(RubberDuck)도 날게 되는 오류가 발생합니다. 위 그림처럼 RubberDuck이 날지 못하도록 fly에서 아무 동작 없이 오버라이딩을 해봅니다. 일단 해결은 되겠죠.그러나, 만약 날지못하는 여러 오리가 추가된다면 일일이 fly에서 아무 ..