您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页面向对象技术(答案)

面向对象技术(答案)

来源:好走旅游网


●下面关于面向对象方法中消息的叙述,不正确的是____(2)__。

(2)A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息

B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息

C. 应用程序之间可以相互发送消息

D.发送与接收消息的通信机制与传统的子程序调用机制不同

正确答案:B

【解析】在系统中既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方法才称为\"面向对象的方法\"。

●面向对象技术中,对象是类的实例。对象有三种成份:____(3)____、属性和

方法(或操作)。

(3) A. 标识B. 规则C. 封装D. 消息

正确答案:A

解析:对象有三种成份:标识(对象名)、属性和方法(或操作)。

● 在面向对象技术中,类属是一种__(1)__机制。一个类属类是关于一组类的一个特性

1

抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。

(1)A.包含多态B.参数多态C.过载多态D.强制多态

(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关

(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关

解析:在面向对象技术中,对象在收到信息后要予以响应。不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态成为特定多态。参数多态应用比较广泛,被称为最纯的多态。这是因为同一对象、函数或过程能以一致的形式用于不同的类型。包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊。强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。类型的变换可在编译时完成,通常是隐式地进行,当然也可以在动态运行时来做。类属类(generic class)仅描述了适用于一组类型的通用样板,由于其中所处理对象的数据类型尚未确定,因而程序员不可用类属类直接创建对象实例,即一个类属类并不是一种真正的类类型。类属类必须经过实例化后才能成为可创建对象实例的类类型。类属类的实例化是指用某一数据类型替代类属类的类型参数。类属类定义中给出的类型参数称为形式类属参数,类属类实例化时给出的类型参数称为实际类属参数。如果类属类实例化的实际类属参数可以是任何类型,那么这种类属类称为无约束类属类。然而在某些情况下,类属类可能要求实际类属参数必须具有某些特殊的性质,以使得在类属类中可应用某些特殊操作,这种类属类称为

2

受约束类属类。

●类的实例化过程是一种实例的合成过程,而不仅仅是根据单个类型进行的空间分配、初始化和绑定。指导编译程序进行这种合成的是_(47)_。

(47)A.类层次结构B.实例的个数C.多态的种类D.每个实例的初始状态

●重置的基本思想是通过_(48)_机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。

(48)A.静态绑定B.对象引用C.类型匹配D.动态绑定

●OMT 定义了三种模型来描述系统。_(49)_可以用状态图来表示;_(50)_可以用数据流图来表示。_(51)_为上述两种模型提供了基本的框架。

(49)A.对象模型B.功能模型C.动态模型D.类模型

(50)A.对象模型B.功能模型C.动态模型D.类模型

(51)A.对象模型B.功能模型C.动态模型D.类模型

● 在UML 提供的图中, ____(31)____用于描述系统与外部系统及用户之间的交互;___(32)___用于按时间顺序描述对象间交互。

(31)A.用例图B.类图C.对象图D.部署图

3

(32)A.网络图B.状态图C.协作图D.序列图

在关于类的实例化的描述中,正确的是__(45)___。

●在关于类的实例化的描述中,正确的是__(45)___。

(45)A.同一个类的对象具有不同的静态数据成员值

B.不同的类的对象具有相同的静态数据成员值

C.同一个类的对象具有不同的对象自身引用(this)值

D.不同的类的对象具有相同的对象自身引用(this)值

4

正确答案:C

学过面向对象编程语言的人,应该对this这个关键字并不陌生,它是对象自身引用值。程序当运行时,this相当于当前类产生对象的名称。所以对于同一个类的对象具有不同的对象自身引用(this)值。

●在某个信息系统中,存在如下的业务陈述:①一个客户提交0 个或多个订单;②一个订单由一个且仅由一个客户提交。系统中存在两个类:“客户”类和“订单”类。对应每个“订单”类的实例,存在___(46)___“客户”类的实例;对应每个“客户”类的实例,存在___(47)___个“订单”类的实例。

(46)A.0 个B.1 个C.1 个或多个D.0 个或多个

(47)A.0 个B.1 个C.1 个或多个D.0 个或多个

●下列关于静态多态实现重载的描述中正确的是____(30)___。

(30)A.重载的方法(函数)的方法名(函数名)可以不同

B.重载的方法(函数)必须在返回值类型以及参数类型上有所不同

C.重载的方法(函数)必须在参数顺序或参数类型上有所不同

D.重载的方法(函数)只需在返回值类型上有所不同

试题(30)分析

5

方法的重载必须保证方法的签名不同,所谓方法的签名是指函数或方法的名字和参数的类型和参数的顺序。重载要求在参数的顺序或者参数的类型上有所不同,对返回值没有要求。 参考答案 (30)C

●程序设计语言提供了基本类型及其相关的操作,而____(31)____则允许开发者自定义一种新的类型及其相关的操作。

供选择的答案:

(31)A.对象B.实例C.类D.引用

试题(31)分析

类是能够由用户定义的一种新的类型。对象是类的实例。

参考答案 (31)C

●___(32)___表示了对象间“is-a”的关系。

供选择的答案:

(32)A.组合B.引用C.聚合D.继承

试题(32)分析

继承表达了子类对象是一种父类对象的关系。

6

参考答案 (32)D

●若对象A 可以给对象B 发送消息,那么___(48)___。

供选择的答案:

(48)A.对象B 可以看见对象A B.对象A 可看见对象B

C.对象A、B 相互不可见D.对象A、B 相互可见

试题(48)分析

对象A可以给对象B发送消息,那么表明对象A可以调用对象B的方法,那么对象A可以看见对象B。

参考答案 (48)B

●类描述了一组对象共同的特性,下列叙述中正确的是____(49)____。

供选择的答案:

(49)A.类本身不能具有变量B.对象具有类定义的所有变量的一份拷贝

C.对象间不能共享类定义的变量D.可通过类名访问静态变量(类变量)

试题(49)分析

7

类也可以有变量,所有类的对象都共享此类的变量。 参考答案 (49)D

●___(50)___反映了类间的一种层次关系,而___(51)____反映了一种整体与部分的关系。

(50)A.继承B.组合C.封装D.多态

(51)A.继承B.组合C.封装D.多态

试题(50)、(51)分析

继承反映了类间的一种层次关系,而组合反映了一种整体与部分的关系。(50)A (51)B 试题(52)

●下列叙述中正确的是___(52)__。

供选择的答案:

(52)A.面向对象程序设计语言都不支持过程化的程序设计

B.面向对象系统只可采用面向对象程序设计语言实现

C.某些过程化程序设计语言也可实现面向对象系统

D.面向对象程序设计语言不支持对成员变量的直接访问

8

参考答案

试题(52)分析

某些面向对象的程序设计语言支持过程化的程序设计,过程化的程序设计语言也可实现面向对象系统。 参考答案 (52)C

● 在面向对象软件开发过程中,采用设计模式(37) 。

(37)A.允许在非面向对象程序设计语言中使用面向对象的概念

B.以复用成功的设计和体系结构

C.以减少设计过程创建的类的个数

D.以保证程序的运行速度达到最优值

● 以下关于单身模式(Singleton)的描述中,正确的是(38) 。

(38)A.它描述了只有一个方法的类的集合

B.它能够保证一个类只产生一个唯一的实例

C.它描述了只有一个属性的类的集合

D.它能够保证一个类的方法只能被—个唯一的类调用

正确答案:B

9

单身模式(Singleton是一种创建型模式。创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的对象。对于系统中的某些类而言,只有一个实例是很重要的。单身模式的意图就是保证一个类仅有一个实例,并提供一个访问它的全局访问点。

● 下列关于一个类的静态成员的描述中,不正确的是(39) 。

(39)A.该类的对象共享其静态成员变量的值

B.静态成员变量可被该类的所有方法访问

C.该类的静态方法只能访问该类的静态成员变量

D.该类的静态数据成员变量的值不可修改

● 在MVC(模型/视图/控制器)模式中,视图部分描述的是(40)(40)A.将应用问题域中包含的抽象领域知识呈现给用户的方式

B.应用问题域中所包含的抽象类

C.用户界面对用户输入的响应方式

D.应用问题域中包含的抽象领域知识

正确答案:A

10

解析:MVC模式,即模型—视图—控制(Model-View-Controller)模式,它实际上是一种架构模式,是为那些需要为同样的数据提供多个视图的应用程序而设计的,它很好地体现了数据层与表示层的分离。

MCV把应用程序分为3种对象类型。

. 模型:应用问题域中包含的抽象领域知识;

. 视图:将应用问题域中包含的抽象领域知识呈现给用户的方法:一个模型可以用于多个视图;

. 控制器:用户界面对用户输入的响应方式。

● 对于如下所示的UML 类图,正确的描述是(41) 。

(41)A.类B 的实例中包含了对类C 的实例的引用

B.类A 的实例中包含了对类B 的实例的引用

C.类A 的实例中包含了对类C 的实例的引用

D.类B 的实例中包含了对类A 的实例的引用

11

正确答案:B

解析:UML类图一般包含3个组成部分。第一个是类名,第二个是属性,第三个是该类提供的方法(类的性质可以放在第四部分;如果类中含有内部类,则会出现第五个组成部分)。类名部分是不能省略的,其他组成部分可以省略。类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。属性和方法书写规范:修饰符[描述信息]属性、方法名称[参数][:返回类型|类型]属性和方法之前可附加的可见性修饰符:加号(+)表示public,减号(-)表示private,#号表示protected,省略这些修饰符表示具有package(包)级别的可见性。如果属性或方法具有下画线,则说明它是静态的。类的性质是由一个属性、一个赋值方法和一个取值方法组成的。书写方式和方法类似。常见的关系有一般化关系、实现关系、聚合关系、合成关系和依赖关系。请注意不同关系在图中连线表示的不同。一般化关系表示类与类、接口与接口之间的继承关系。关系中的箭头由子类指向父类。在Java中,用extends关键字来直接表示这种关系。

● UML 中关联的多重度是指(42) 。

(42)A.一个类有多少个方法被另一个类调用

B.一个类的实例能够与另一个类的多少个实例相关联

C.一个类的某个方法被另一个类调用的次数

D.两个类所具有的相同的方法和属性

● 已知3 个类A、B 和C,其中类A 由类B 的一个实例和类C 的1 个或多个实例

12

构成。能够正确表示类A、B 和C 之间关系的UML 类图是(43) 。

正确答案:A

解析:类A由类B的一个实例和类C伪1个或多个实例构成,可见这是整体与部分的关系。在UML中,用聚集来表示“整体与部分”这种关联,在整体一端连接—个空心菱形。再根据上题中重复度的解释,显然选择A。选项B是普通关联,不能准确描述题目要求。[*]

● 面向对象分析的第一步是(33).

(33)A.定义服务B.确定附加的系统约束

C.确定问题域D.定义类和对象

13

● 面向对象程序设计语言为(34)提供支持。

(34)A.面向对象用例设计阶段B.面向对象分析阶段

C.面向对象需求分析阶段D.面向对象实现阶段

● 下面关于面向对象的描述正确的(35)。

(35)A.针对接口编程,而不是针对实现编程

B.针对实现编程,而不是针对接口编程

C.接口与实现不可分割

D.优先使用继承而非组合

● 下面关于UML 文档的叙述中正确的是(36)。

(36)A.UML 文档指导开发人员如何进行面向对象分析

B.UML 文档描述了面向对象分析与设计的结果

C.UML 文档给出了软件的开发过程和设计流程

D.UML 文档指导开发人员如何进行面向对象设计

14

解析:UML文档仅是设计者与开发人员采用UML语言进行系统分析与设计的结果,并没有给出如何进行系统开发和采用哪种开发流程,它也不指导开发人员如何进行面向对象设计。

● UML 的设计视图包含了类、接口和协作,其中,设计视图的静态方面由(37)和(38)表现;动态方面由交互图、(39)表现。

(37)A.类图B.状态图C.活动图D.用例图

(38)A.状态图B.顺序图C.对象图D.活动图

(39)A.状态图和类图B.类图和活动图

C.对象图和状态图D.状态图和活动图

● UML 中的构件是遵从一组接口并提供一组接口的实现,下列说法错误的是(40)。

(40)A.构件应是可替换的B.构件表示的是逻辑模块而不是物理模块

C.构件应是组成系统的一部分D.构件与类处于不同的抽象层次

正确答案:B

解析:构件应该是物理模块而不是逻辑模块。

● 设计模式具有(41)的优点。

15

(41)A.适应需求变化B.程序易于理解

C.减少开发过程中的代码开发工作量D.简化软件系统的设计

● 下面的(42)模式将对象组合成树形结构以表示“部分一整体”的层次结构,并使得用户对单个对象和组合对象的使用具有一致性。

(42)A.组合(Composite) B.桥接(Bridge)

C.修饰(Decorator) D.外观(Facade)

● 下图描述了一种设计模式,该设计模式不可以(43)。

(43)A.动态决定由一组对象中某个对象处理该请求

B.动态指定处理一个请求的对象集合,并高效率地处理一个请求

C.使多个对象都有机会处理请求,避免请求的发送者和接收者间的祸合关系

16

D.将对象连成一条链,并沿着该链传递请求

处理一个请求的物件集合可以被动态的指定,但并不见得高效率.

● 在面向对象程序设计中,常常将接口的定义与接口的实现相分离,可定义不同的类实现相同的接口。在程序运行过程中,对该接口的调用可根据实际的对象类型调用其相应的实现。为达到上述目的,面向对象语言须提供(44)机制。

(44)A.继承和过载(overloading) B.抽象类

C.继承和重置(overriding) D.对象目身引用

超载即为重载,重置是覆盖.(也是动态绑定,多态)

● 面向对象分析与设计是面向对象软件开发过程中的两个重要阶段,下列活动中,(36)不属于面向对象分析阶段。

(36)A. 构建分析模型B. 识别分析类C.确定接口规格D. 评估分析模型

● 在某大学学生学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是(37) 。

(37)A. 可划分为2 个有效等价类,2 个无效等价类

B. 可划分为1 个有效等价类,2 个无效等价类

17

C. 可划分为2 个有效等价类,1 个无效等价类

D. 可划分为1 个有效等价类,1 个无效等价类

● 面向对象分析需要找出软件需求中客观存在的所有实体对象(概念),然后归纳、抽象出实体类。(38)是寻找实体对象的有效方法之一。

(38)A. 会议调查B. 问卷调查C. 电话调查D. 名词分析

● 在“模型-视图-控制器”(MVC)模式中,(39) 主要表现用户界面,用来描述核心业务逻辑。

(39)A. 视图B. 模型C. 控制器D. 视图和控制器

(40)A. 视图B. 模型C. 控制器D. 视图和控制器

● 在进行面向对象设计时,采用设计模式能够(41)。

(41)A. 复用相似问题的相同解决方案B. 改善代码的平台可移植性

C. 改善代码的可理解性D. 增强软件的易安装性

18

40) (

● 下面给出了四种设计模式的作用:外观(Facade):为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用;装饰(Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能;单件(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点;模板方法(Template Method):在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。请根据下面叙述的场景选用适当的设计模式。若某面向对象系统中的某些类有且只有一个实例,那么采用(42)设计模式能够有效达到该目的;该系统中的某子模块需要为其它模块提供访问不同数据库系统(Oracle、SQL Server、DB2 UDB 等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行查询,(43) 设计模式可抽象出相同的数据库访问过程;系统中的文本显示类( TextView )和图片显示类(PictureView )

都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,(44)设计模式可以实现该目的。

(42)A. 外观B.装饰C. 单件D. 模板方法

(43)A. 外观B.装饰C. 单件D. 模板方法

(44)A. 外观B.装饰C. 单件D. 模板方法

19

● 在采用标准UML 构建的用例模型(Use-Case Model)中,参与者(Actor)与用例(Use Case)是模型中的主要元素,其中参与者与用例之间可以具有(45)关系。

(45)A. 包含(include) B. 递归(Recursive)

C. 关联(Association) D. 组合(Composite)

20

● 当采用标准UML 构建系统类模型(Class Model)时,若类B 除具有类A 的全部特性外,类B 还可定义新的特性以及置换类A 的部分特性,那么类B 与类A 具有(46)关系;若类A 的对象维持类B 对象的引用或指针,并可与类C 的对象共享相同的类B 的对象,那么类A 与类B 具有(47)关系。

(46)A. 聚合B. 泛化C. 传递D. 迭代

(47)A. 聚合B. 泛化C. 传递D. 迭代

● (37) 表示了系统与参与者之间的接口。在每一个用例中,该对象从参与者处收集信息,并将之转换为一种被实体对象和控制对象使用的形式。

(37)A. 边界对象B. 可视化对象C. 抽象对象D. 实体对象

● 在UML 语言中,下图中的a、b、c 三种图形符号按照顺序分别表示(38) 。

21

(38)A. 边界对象、实体对象、控制对象B. 实体对象、边界对象、控制对象

C. 控制对象、实体对象、边界对象D. 边界对象、控制对象、实体对象

正确答案:C

解析:本题考查的是采用UML进行面向对象设计过程中,各种不同对象的图形表示,按照上述的图形顺序,分别表示控制对象、实体对象、边界对象。

● 在下面的用例图(UseCase Diagram)中,X1、X2 和X3 表示(39) ,已知UC3 是抽象用例,那么X1 可通过(40) 用例与系统进行交互。并且,用例(41) 是UC4 的可选部分,用例(42) 是UC4的必须部分。

(39)A. 人B. 系统C. 参与者D. 外部软件

22

(40)A. UC4、UC1 B. UC5、UC1 C. UC5、UC2 D. UC1、UC2

(41)A. UC1 B. UC2 C. UC3 D. UC5

(42)A. UC1 B. UC2 C. UC3 D. UC5

● (43)设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

(43)A. Adapter(适配器) B. Iterator(迭代器)

C. Prototype(原型) D. Observer(观察者)

● UML 中有多种类型的图,其中, (44) 对系统的使用方式进行分类, (45) 显示了类及其相互关系, (46) 显示人或对象的活动,其方式类似于流程图,通信图显示在某种情况下对象之间发送的消息,(47) 与通信图类似,但强调的是顺序而不是连接。

(44)A. 用例图B. 顺序图C. 类图D. 活动图

(45)A. 用例图B. 顺序图C. 类图D. 活动图

(46)A. 用例图B. 顺序图C. 类图D. 活动图

(47)A. 用例图B. 顺序图C. 类图D. 活动图

● (12)是指把数据以及操作数据的相关方法组合在同一个单元中,使我们可以把类

23

作为软件中的基本复用单元,提高其内聚度,降低其耦合度。面向对象中的(13)机制是对现实世界中遗传现象的模拟,通过该机制,基类的属性和方法被遗传给派生类。

(12)A. 封装B. 多态C. 继承D. 变异

(13)A. 封装B. 多态C. 继承D. 变异

● (14)以静态或动态的连接方式,为应用程序提供一组可使用的类。(15)除了提供可被应用程序调用的类以外,还基本实现了一个可执行的架构。

(14)A. 函数库B. 类库C. 框架D. 类属

(15)A. 函数库B. 类库C. 框架D. 类属

正确答案:B

本题考查的是框架和类库的概念与区别。类库为应用程序提供了一组可以被使用的类,而框架除了提供类之外,还基本实现了一个可以执行的架构。函数库提供被调用的函数。

● (16) 是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。

(16)A. 结构化开发方法B. Jackson 系统开发方法

C. Booch 方法D. UML(统一建模语言)

本题考查软件开发方法基本概念。结构化开发方法是传统的、也是应用较为广发的一

24

种软件开发方法,它基于数据流进行需求分析和软件设计,用抽象模型的概念,按照软件内部数据传递和转换关系,对问题和功能自顶向下逐层分解。Jackson系统开发方法是一种典型的面向数据结构的分析和设计方法,以活动为中心,一连串活动的顺序组合成一个完整的工作进程。Booch方法是一种面向对象的软件开发方法。UML仅仅是一种建模标准语言,规定了构成软件的各个元素和构件的图示规范。

● 采用UML 进行软件设计时,可用(17) 关系表示两类事物之间存在的特殊/一般关系,用聚集关系表示事物之间存在的整体/部分关系。

(17)A. 依赖B. 聚集C. 泛化D. 实现

本题考查对UML中关系概念的理解。按照面向对象技术的描述,若两类事物之间存在特殊/一般关系,则用继承机制表示该关系,即UML中的泛化关系。

● 在面向对象系统中,用(15) 关系表示一个较大的“整体”类包含一个或多个较小的“部分”类。

(15)A. 泛化B. 聚合C. 概化D. 合成

● 面向对象分析与设计中的(37) 是指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的;而(38) 是指子类应当可以替换父类并出现在父类能够出现的任何地方。

(37)A. 开闭原则B. 替换原则C. 依赖原则D. 单一职责原则

(38)A. 开闭原则B. 替换原则C. 依赖原则D. 单一职责原则

25

● 在选择某种面向对象语言进行软件开发时,不需要着重考虑的因素是,该语言(39)。

(39)A. 将来是否能够占据市场主导地位B. 类库是否丰富

C. 开发环境是否成熟D. 是否支持全局变量和全局函数的定义

● (40) 限制了创建类的实例数量,而(41) 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

(40)A. 命令模式(Command) B. 适配器模式(Adapter)

C. 策略模式(Strategy) D. 单例模式(Singleton)

(41)A. 命令模式(Command) B. 适配器模式(Adapter)

C. 策略模式(Strategy) D. 单例模式(Singleton)

● (42) 是指在运行时把过程调用和响应调用所需要执行的代码加以结合。

(42)A. 绑定B. 静态绑定C. 动态绑定D. 继承

● (43) 设计模式允许一个对象在其内部状态改变时改变它的行为。下图为这种设计模式的类图,已知类State 为抽象类,则类(44) 的实例代表了Context 对象的状态。

26

(43)A. 单件(Singleton) B. 桥接(Bridge) C. 组合(Composite) D. 状态(State)

(44)A. Context B. concreteStateA C. Handle D. State

● 在UML 的各种视图中, (45) 显示外部参与者观察到的系统功能; (46) 从系统的静态结构和动态行为角度显示系统内部如何实现系统的功能; (47) 显示的是源代码以及实际执行代码的组织结构。

(45)A. 用例视图B. 进程视图C. 实现视图D. 逻辑视图

(46)A. 用例视图B. 进程视图C. 实现视图D. 逻辑视图

(47)A. 用例视图B. 进程视图C. 实现视图D. 逻辑视图

● 在采用面向对象技术构建软件系统时,很多敏捷方法都建议的一种重要的设计活动是(15) ,它是一种重新组织的技术,可以简化构件的设计而无需改变其功能或行为。

(15)A. 精化B. 设计类C. 重构D. 抽象

27

正确答案:C

解析:本题考查采用敏捷方法进行软件开发。敏捷方法中,重构是一种重新组织技术,重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求,可以简化构件的设计而无需改变其功能或行为。

● 下面关于面向对象分析与面向对象设计的说法中,不正确的是(37) 。

(37)A. 面向对象分析侧重于理解问题

B. 面向对象设计侧重于理解解决方案

C. 面向对象分析描述软件要做什么

D. 面向对象设计一般不关注技术和实现层面的细节

● 在面向对象分析与设计中, (38) 是应用领域中的核心类,一般用于保存系统中的信息以及提供针对这些信息的相关处理行为; (39) 是系统内对象和系统外参与者的联系媒介; (40) 主要是协调上述两种类对象之间的交互。

(38)A. 控制类B. 边界类C. 实体类D. 软件类

(39)A. 控制类B. 边界类C. 实体类D. 软件类

(40)A. 控制类B. 边界类C. 实体类D. 软件类

28

● 若类A 仅在其方法Method1 中定义并使用了类B 的一个对象,类A 其它部分的代码都不涉及类B,那么类A 与类B 的关系应为(41) ;若类A 的某个属性是类B 的一个对象,并且类A 对象消失时,类B 对象也随之消失,则类A 与类B 的关系应为(42) 。

(41)A.关联B. 依赖C. 聚合D. 组合

(42)A.关联B. 依赖C. 聚合D. 组合

● 当不适合采用生成子类的方法对已有的类进行扩充时,可以采用(43) 设计模式动态地给一个对象添加一些额外的职责;当应用程序由于使用大量的对象,造成很大的存储开销时,可以采用(44) 设计模式运用共享技术来有效地支持大量细粒度的对象;当想使用一个已经存在的类,但其接口不符合需求时,可以采用(45) 设计模式将该类的接口转换成我们希望的接口。

(43)A. 命令(Command) B.适配器(Adapter)

C.装饰(Decorate) D.享元

(Flyweight)

(44)A. 命令(Command) B.适配器(Adapter)

C.装饰(Decorate) D.享元

(Flyweight)

29

(45)A. 命令(Command) B.适配器(Adapter)

C.装饰(Decorate) D.享元

(Flyweight)

● 下图属于UML 中的(46) ,其中,AccountManagement 需要(47)

(46)A. 组件图B. 部署图C. 类图D.对象图

(47)A. 实现IdentityVerifier 接口并被CreditCardServices 调用

B. 调用CreditCardServices 实现的IdentityVerifier 接口

C. 实现IdentityVerifier 接口并被Logger 调用

30

D. 调用Logger 实现的IdentityVerifier 接口

● 以下关于类和对象的叙述中,错误的是(37) 。

(37)A. 类是具有相同属性和服务的一组对象的集合

B. 类是一个对象模板,用它仅可以产生一个对象

C. 在客观世界中实际存在的是类的实例,即对象

D. 类为属于该类的全部对象提供了统一的抽象描述

试题(37) 分析

本题考查面向对象中类和对象的基本概念。

面向对象中,类是对象的模板,描述了一组对象共有的成员属性和方法。类是一组对象的抽象描述,通过类可以产生一个或多个对象,这些对象具有相同的属性和方法。 [参考答案] (37) B

● (38) 是把对象的属性和服务结合成一个独立的系统单元,并尽可能隐藏对象的内部细节;(39) 是指子类可以自动拥有父类的全部属性和服务; (40) 是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等。

(38)A. 继承B. 多态C. 消息D. 封装

31

(39)A. 继承B. 多态C. 消息D. 封装

(40)A. 继承B. 多态C. 消息D. 封装

试题(38)~(40) 分析

本题考查面向对象的基本概念。

封装的作用是把属性和服务结合成一个独立的系统单元,并隐藏对象的内部细节;而继承则使得子类可以自动拥有父类的全部属性和服务;消息则是对象发出的服务请求;多态是指面向对象中由重载或过载机制实现的结果。

[参考答案]

(38) D (39) A (40) C

● 以下关于面向对象分析的叙述中,错误的是(41) 。

(41)A. 面向对象分析着重分析问题域和系统责任

B. 面向对象分析需要考虑系统的测试问题

C. 面向对象分析忽略与系统实现有关的问题

D. 面向对象分析建立独立于实现的系统分析模型

32

试题(41) 分析

本题考查面向对象分析的基本概念。

面向对象分析主要回答软件系统需要解决什么问题,在面向对象分析阶段,并不考虑系统实现以及系统的测试问题,强调建立独立与系统实现的系统分析模型,其关注点仍然侧重于问题域。 [参考答案] (41) B

● 以下关于面向对象设计的叙述中,错误的是(42) 。

(42)A. 高层模块不应该依赖于底层模块有 B. 抽象不应该依赖于细节

C. 细节可以依赖于抽象 D. 高层模块无法不依赖于底层模块

试题(42) 分析

本题考查面向对象设计的基本原则。

面向对象设计中存在很多原则,其中高层模块不应该依赖于底层模块就是其中一条。传统的结构化设计中,一般的高层模块需要调用或使用底层模块,导致高层模块必须依赖于底层模块,但借助面向对象中的抽象类、接口等一系列机制,可以使得高层模块仅仅和接口耦合,而和实际的底层模块没有直接关联。

[参考答案] (42) D

● 采用(43) 设计模式可保证一个类仅有一个实例;采用(44) 设计模式可将对象

33

组合成树形结构以表示“部分-整体”的层次结构,使用户对单个对象和组合对象的使用具有一致性;采用(45) 设计模式可动态地给一个对象添加一些额外的职责。

(43)A. 命令(Command) B.单例(Singleton)

C. 装饰(Decorate) D. 组合(Composite)

(44)A. 命令(Command) B.单例(Singleton)

C. 装饰(Decorate) D. 组合(Composite)

(45)A. 命令(Command) B.单例(Singleton)

C. 装饰(Decorate) D. 组合(Composite)

本题考查面向对象设计中的设计模式。

单例设计模式的目的就是保证一个类仅能够生成一个对象:组合设计模式则用于表示“部分-整体”的层次结构,并且对部分和整体的使用具有一致性;装饰设计模式则动态地给一个对象增加一些额外的职责,无须改变类的设计和实现。

[参考答案]

(43) B (44) D (45) C

● 下列UML 类图表示的是(46) 设计模式。该设计模式中, (47) 。

34

(46)A. 备忘录(Memento) B. 策略(Strategy) C. 状态(State) D. 观察者(Observer)

(47)A. 一个Subject 对象可对应多个Observer 对象

B. Subject 只能有一个ConcreteSubject 子类

C. Observer 只能有一个ConcreteObserver 子类

D. 一个Subject 对象必须至少对应一个Observer 对象

试题(46)、(47) 分析

本题考查面向对象设计中的设计模式。

题中的图标是观察者设计模式,在该设计模式中,一个Subject类可以有多个 ConcreteSubiect子类,一个Observer类也可以有多个ConcreteObserver子类;一个Subject对象可以对应多个Observer对象。 [参考答案] (46) D (47) A

35

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务