问答题

阅读下列说明和Java代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表10.5所示。

为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图10.12示。

图10.12中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。
[Java代码]
interface FlyBehavior
public void fly();

class SubSonicFly implements FlyBehavior
public void fly()(System.out.println("亚音速飞行!");

class SuperSonicFly implements FlyBehavior
public void fly()(System.out.println("超音速飞行!");

interface TakeOffBehavior
public void takeOff();
;
class VerticalTakeOff implements TakeOffBehavior
public void takeOff()(System.out.println("垂直起飞!");

class LongDistanceTakeOff implements TakeOffBehavior
public void takeOff()System.out.println("长距离起飞!");
;
abstract class AirCraft
protected (1)
protected (2)
public void fly()( (3) ;)
public void takeOff() (4)

class Helicopter (5) AirCraft
public Helicopter ()
flyBehavior=new (6)
takeOffBehavior=new (7) ;


//其他代码省略

【参考答案】

(1) FlyBehavior flyBehavior (2) TakeOffBehavior takeOffBehav......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
阅读下列说明和C++代码,在 (n) 处填入正确的字句。 [说明] 某公司的组织结构图如图10.4所示,现采用组合(Composition)设计模式来构造该公司的组织结构,得到如图10.5所示的类图。 其中Company为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分公司 办事处或者部门的方法接口。类ConcreteCompany表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类HRDepartment和FinanceDepartment分别表示人力资源部和财务部。 [C++代码] #include <iostream> #include <list> #include <string> using namespace std; class Company 抽象类 protected: string name; public: Company(string name) (1) =name; (2) ; 增加子公司、办事处或部门 (3) ; 删除子公司、办事处或部门 ; class ConcreteCompany: public Company private: list< (4) >children; 存储子公司、办事处或部门 public: ConcreteCompany(string name):Company (name) void Add (Company*c) (5) .push back (c); void Delete (Company*c) (6) .remove (c); ; class HRDepartment: public Company public: HRDepartment(string name):Company(name) 其他代码省略 ; class FinanceDepartment: public Company public: FinanceDepartment(string name):Company(name) 其他代码省略 ; void main() ConcreteCompany *root=new ComcreteCompany( 北京总公司 ); root->Add (new HRDepartrnent( 总公司人力资源音 )); root->Add(new FinanceDepartment( 总公司财务部 )); ConcreteCompany *comp=new ConcreteCompany( 上海分公司 ); comp->Add (new HRDepartment( 上海分公司人力资源部 )); comp->Add(new FinanceDepartment( 上海分公司财务部 )); (7) ; ConcreteCompany *compl=new ConcreteCompany( 南京办事处 ); comp 1->Add (new HRDepartment( 南京办事处人力资源部 )); comp 1->Add (new FinanceDepartment( 南京办事处财务部 )); (8) ; 其他代码省略