早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某软件公司现欲开发一

题目

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表6-1所示。

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

图5-11中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly( )和takeOff( )分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类Verti—calTakeOff与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) ;

}

};

//其它代码省略

参考答案
正确答案:(I)FlyBehavior flyBehavior (2)TakeOffBehavior takeOffBehavior (3)flyBehavior.fly( ) (4)takeOffBehavior.takeOff( ) (5)extends (6)SuperSonicFiy( ) (7)VerticalTakeOff( )
(I)FlyBehavior. flyBehavior. (2)TakeOffBehavior. takeOffBehavior. (3)flyBehavior.fly( ) (4)takeOffBehavior.takeOff( ) (5)extends (6)SuperSonicFiy( ) (7)VerticalTakeOff( ) 解析:Helicopter类继承AirCraft类,fly行为实现FlyBehavior接口,takeOff行为实现TakeOffBehavior接口。
因为AirCraft类没有实现fly( )和takeOff( )行为,故空(1)空(2)应填FlyBehavior. flyBehavior和TakeOffBehavior. takeOffBehavior。
空(3)要实现fly行为故调用对象flyBehavior.fly( ),同理空(4)要实现takeOffBehavior行为故调用takeOffBehavior.takeOff( )。
空(5)因为Helicoptel"继承自AirCraft所以要填写关键字extends。
空(6)空(7)考查多态调用,因为Helicopter类为垂直起飞和亚音速飞行,故应分别SuperSonicFly( )和VerticalTakeOff( )。
看了阅读下列说明和Java代码,将...的网友还看了以下:

资产负债表“年初余额”栏内各项目的金额,应根据上年末资产负债表“期末余额”栏内所列数字填列。 财会类考试 2020-05-21 …

阅读以下说明和c++码,将应填入(n)处的字名写在对应栏内。 [说明] 从键盘输入一个字符ch,输出 计算机类考试 2020-05-26 …

阅读以下说明和Java码,将应填入(n)处的字名写在对应栏内。 [说明] 编写一个字符界面的Java 计算机类考试 2020-05-26 …

阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】 本程序在3×3方格中填入1 计算机类考试 2020-05-26 …

下表中,甲栏是实验操作造成的后果,乙栏列出了造成这些后果可能的原因.试从乙栏中选择适当的字母标号, 化学 2020-06-18 …

某考生打算从7所重点大学中选3所填在第一档次的3个志愿栏内,其中A校定为第一志愿,再从5所一般大学 数学 2020-06-18 …

欲采取化学方法除去下表第I栏内4种物质中的少量杂质(括号内为杂质),请分别从第Ⅱ、Ⅲ内选取合理选项 其他 2020-06-18 …

制作祖国科技成果宣传橱窗,展示祖国翻天覆地的巨大变化.请你一起来设计栏目.要求:与“栏目一”字数相 历史 2020-07-02 …

可以用红字记账的有哪些呢?1.在不设借贷等栏的多栏式账页中,登记减少数2.在三栏式账户的余额栏前, 其他 2020-07-03 …

读下面一段文字,根据拼音填写汉字。(用正楷依次写在田字格内,4分)风儿吹过,商朝的雨轻轻地敲打着窗棂 语文 2020-11-25 …