试题与答案

[说明]某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的

题型:填空题

题目:

[说明]

某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表下表所示。

为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(strategy)设计的类图如图5-1所示。

其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior与QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。

[C++代码]

# include<iostream>

using namespace (1) ;

class FlyBehavior

public : (2) fly()=0;

;

class QuackBehavior

public: (3) quack()=0;

Class FlyWithWings :public F1yBehavior

public: void fly()cout<<"使用翅膀飞行!"<<endl;

;

class FlyNoWay :public FlyBehavior

public: void fly()cout<<"不能飞行!">>endl;

;

class Quack :public QuackBehavior

public: void quack()cout<<"发出\’嘎嘎’\声!"<<endl;

;

class Squeak :public QuackBehavior

public: void quack()cout<<"发出空气与橡皮摩擦声!"<<endl;

;

class QuackNOWay :public QuackBehaVior

public: void quack()cout<<"不能发声!"<<endl;

;

C1ass Duck

protected:

FlyBehavior * (4) ;

QuackBehaVior * (5) ;

public:

VOid fly() (6) ;

VOid quack() (7) ; ;

virtual void display()=0;

;

class RubberDuck: public Duck

public:

RubberDuck()

flyBehavior=new (8) ;

quackBehavior=new (9) ;

~RubberDuck()

if (!flyBehavior) delete flyBehaVior;

i f(!quackBehavior)delete quackBehavior;

Void display() /*此处省略显示橡皮鸭的代码*/

//其他代码省略

(9)处填()。

答案:

参考答案:Squeak()

解析:

本题考查面向对象的程序设计的抽象类和多态,使用的语言是Java。

(1) 由题中所给信息:接口FlyBehavior与QuackBehavior分别用于表示抽象的飞行行为与发声行为,可知(1)处和(2)处都应填interface。

(2) 由子类RubberDuck类中出现的flyBelhavior和quackBehavior,而它们在之前并没有被定义过,可知(3)处和(4)处需声明这两个对象分别为FlyBehavior、QuackBehavior类型,否则出错。

(3) 由“FlyBehavior flyBehavior; QuackBehavior quackBehavior;”及函数名可知该函数体应调用FlyBehavior类中的fly函数和QuackBehavior类中的quack函数。所以(5)处和(6)处应分别填写:flyBehavior.fly和quackBehavior.quack()。

(4) 由于Duck类为抽象类,因此需要一个抽象函数来描述鸭子的总体外观特征,所以(7)处应填写abstract。

对于题目第(8)处和第(9)处,由题中所给信息可知RubberDuck是“发出空气与橡皮摩擦声”并且“不能飞行”的鸭子种类,因此构造函数中创建的对象flyBehavior和quackBehavior对应的类型分别为FlyNoWay、Squeak。

试题推荐
题型:单项选择题 案例分析题

女性,56岁。无明显诱因消瘦3个月余。1个月前出现腹泻3~4次,无明显腹痛,抗感染治疗无效。近1周极度乏力、懒言、不能站立,吞咽呛咳就诊。体检:呈恶病质,体温37.8℃,表情淡漠,语音低微。皮肤略潮湿。无突眼。甲状腺Ⅰ度肿大,未及结节,杂音(-),心率124次/分,律齐。双手细微震颤(±)。全身肌萎缩明显,肌力2~3级

规则服用甲巯咪唑治疗1.5年,症状控制准备停药,停药前必须做的检查是()

A.TC,Ab、TPOAb测定

B.甲状腺吸碘率测定

C.FT3、FT4、TSH测定

D.T3抑制试验

E.TRH兴奋试验加TsH受体抗体的测定

查看答案
微信公众账号搜索答案