面向对象技术答案.docx
《面向对象技术答案.docx》由会员分享,可在线阅读,更多相关《面向对象技术答案.docx(20页珍藏版)》请在冰豆网上搜索。
面向对象技术答案
●下面关于面向对象方式中消息的叙述,不正确的是____
(2)__。
(2)A.键盘、鼠标、通信端口、网络等设备一有转变,就会产生消息
B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息
C.应用程序之间可以彼此发送消息
D.发送与接收消息的通信机制与传统的子程序挪用机制不同
正确答案:
B【解析】在系统中既利用对象又利用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方式才称为"面向对象的方式"。
●面向对象技术中,对象是类的实例。
对象有三种成份:
____(3)____、属性和
方式(或操作)。
(3)A.标识B.规则C.封装D.消息
正确答案:
A解析:
对象有三种成份:
标识(对象名)、属性和方式(或操作)。
●在面向对象技术中,类属是一种__
(1)__机制。
一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__
(2)__的那些部份,而用变元来表示与__(3)__的那些部份。
(1)A.包括多态B.参数多态C.过载多态D.强制多态
(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关
(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关
解析:
在面向对象技术中,对象在收到信息后要予以响应。
不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。
多态有多种不同的形式,其中参数多态和包括多态称为通用多态,过载多态和强制多态成为特定多态。
参数多态应用比较普遍,被称为最纯的多态。
这是因为同一对象、函数或进程能以一致的形式用于不同的类型。
包括多态最多见的例子就是子类型化,即一个类型是另一类型的子类型。
过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。
即通过语法对不同语义的对象利用相同的名,编译能够消除这一模糊。
强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,若是不做这一强制性变换将出现类型错误。
类型的变换可在编译时完成,一般是隐式地进行,固然也可以在动态运行时来做。
类属类(generic class)仅描述了适用于一组类型的通用样板,由于其中所处置对象的数据类型尚未肯定,因此程序员不可用类属类直接创建对象实例,即一个类属类并非是一种真正的类类型。
类属类必需通过实例化后才能成为可创建对象实例的类类型。
类属类的实例化是指用某一数据类型替代类属类的类型参数。
类属类概念中给出的类型参数称为形式类属参数,类属类实例化时给出的类型参数称为实际类属参数。
若是类属类实例化的实际类属参数可以是任何类型,那么这种类属类称为无约束类属类。
但是在某些情况下,类属类可能要求实际类属参数必需具有某些特殊的性质,以使得在类属类中可应用某些特殊操作,这种类属类称为受约束类属类。
●类的实例化进程是一种实例的合成进程,而不单单是按照单个类型进行的空间分派、初始化和绑定。
指导编译程序进行这种合成的是_(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.部署图
(32)A.网络图B.状态图C.协作图D.序列图
在关于类的实例化的描述中,正确的是__(45)___。
●在关于类的实例化的描述中,正确的是__(45)___。
(45)A.同一个类的对象具有不同的静态数据成员值
B.不同的类的对象具有相同的静态数据成员值
C.同一个类的对象具有不同的对象自身引用(this)值
D.不同的类的对象具有相同的对象自身引用(this)值
正确答案:
C 学过面向对象编程语言的人,应该对this这个关键字并非陌生,它是对象自身引用值。
程序当运行时,this相当于当前类产生对象的名称。
所以对于同一个类的对象具有不同的对象自身引用(this)值。
●在某个信息系统中,存在如下的业务陈述:
①一个客户提交0个或多个定单;②一个定单由一个且仅由一个客户提交。
系统中存在两个类:
“客户”类和“定单”类。
对应每一个“定单”类的实例,存在___(46)___“客户”类的实例;对应每一个“客户”类的实例,存在___(47)___个“定单”类的实例。
(46)个个个或多个个或多个
(47)个个个或多个个或多个
●下列关于静态多态实现重载的描述中正确的是____(30)___。
(30)A.重载的方式(函数)的方式名(函数名)可以不同
B.重载的方式(函数)必需在返回值类型和参数类型上有所不同
C.重载的方式(函数)必需在参数顺序或参数类型上有所不同
D.重载的方式(函数)只需在返回值类型上有所不同
试题(30)分析
方式的重载必需保证方式的签名不同,所谓方式的签名是指函数或方式的名字和参数的类型和参数的顺序。
重载要求在参数的顺序或参数的类型上有所不同,对返回值没有要求。
参考答案 (30)C
●程序设计语言提供了大体类型及其相关的操作,而____(31)____则允许开发者自概念一种新的类型及其相关的操作。
供选择的答案:
(31)A.对象B.实例C.类D.引用
试题(31)分析
类是能够由用户概念的一种新的类型。
对象是类的实例。
参考答案 (31)C
●___(32)___表示了对象间“is-a”的关系。
供选择的答案:
(32)A.组合B.引用C.聚合D.继承
试题(32)分析
继承表达了子类对象是一种父类对象的关系。
参考答案 (32)D
●若对象A可以给对象B发送消息,那么___(48)___。
供选择的答案:
(48)A.对象B可以看见对象AB.对象A可看见对象B
C.对象A、B彼此不可见D.对象A、B彼此可见
试题(48)分析
对象A可以给对象B发送消息,那么表明对象A可以挪用对象B的方式,那么对象A可以看见对象B。
参考答案 (48)B
●类描述了一组对象一路的特性,下列叙述中正确的是____(49)____。
供选择的答案:
(49)A.类本身不能具有变量B.对象具有类概念的所有变量的一份拷贝
C.对象间不能共享类概念的变量D.可通过类名访问静态变量(类变量)
试题(49)分析
类也可以有变量,所有类的对象都共享此类的变量。
参考答案 (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.面向对象程序设计语言不支持对成员变量的直接访问
试题(52)分析
某些面向对象的程序设计语言支持进程化的程序设计,进程化的程序设计语言也可实现面向对象系统。
参考答案 (52)C
●在面向对象软件开发进程中,采用设计模式(37)。
(37)A.允许在非面向对象程序设计语言中利用面向对象的概念
B.以复用成功的设计和体系结构
C.以减少设计进程创建的类的个数
D.以保证程序的运行速度达到最优值
●以下关于单身模式(Singleton)的描述中,正确的是(38)。
(38)A.它描述了只有一个方式的类的集合
B.它能够保证一个类只产生一个唯一的实例
C.它描述了只有一个属性的类的集合
D.它能够保证一个类的方式只能被—个唯一的类挪用
正确答案:
B单身模式(Singleton是一种创建型模式。
创建型模式抽象了实例化进程,它们帮忙一个系统独立于如何创建、组合和表示它的对象。
对于系统中的某些类而言,只有一个实例是很重要的。
单身模式的用意就是保证一个类仅有一个实例,并提供一个访问它的全局访问点。
●下列关于一个类的静态成员的描述中,不正确的是(39)。
(39)A.该类的对象共享其静态成员变量的值
B.静态成员变量可被该类的所有方式访问
C.该类的静态方式只能访问该类的静态成员变量
D.该类的静态数据成员变量的值不可修改
●在MVC(模型/视图/控制器)模式中,视图部份描述的是(40)。
(40)A.将应用问题域中包括的抽象领域知识呈现给用户的方式
B.应用问题域中所包括的抽象类
C.用户界面对用户输入的响应方式
D.应用问题域中包括的抽象领域知识
正确答案:
A解析:
MVC模式,即模型—视图—控制(Model-View-Controller)模式,它实际上是一种架构模式,是为那些需要为一样的数据提供多个视图的应用程序而设计的,它很好地表现了数据层与表示层的分离。
MCV把应用程序分为3种对象类型。
. 模型:
应用问题域中包括的抽象领域知识; . 视图:
将应用问题域中包括的抽象领域知识呈现给用户的方式:
一个模型可以用于多个视图; . 控制器:
用户界面对用户输入的响应方式。
●对于如下所示的UML类图,正确的描述是(41)。
(41)A.类B的实例中包括了对类C的实例的引用
B.类A的实例中包括了对类B的实例的引用
C.类A的实例中包括了对类C的实例的引用
D.类B的实例中包括了对类A的实例的引用
正确答案:
B解析:
UML类图一般包括3个组成部份。
第一个是类名,第二个是属性,第三个是该类提供的方式(类的性质可以放在第四部份;若是类中含有内部类,则会出现第五个组成部份)。
类名部份是不能省略的,其他组成部份可以省略。
类名书写规范:
正体字说明类是可被实例化的,斜体字说明类为抽象类。
属性和方式书写规范:
修饰符[描述信息]属性、方式名称[参数][:
返回类型|类型]属性和方式之前可附加的可见性修饰符:
加号(+)表示public,减号(-)表示private,#号表示protected,省略这些修饰符表示具有package(包)级别的可见性。
若是属性或方式具有下画线,则说明它是静态的。
类的性质是由一个属性、一个赋值方式和一个取值方式组成的。
书写方式和方式类似。
常见的关系有一般化关系、实现关系、聚合关系、合成关系和依赖关系。
请注意不同关系在图中连线表示的不同。
一般化关系表示类与类、接口与接口之间的继承关系。
关系中的箭头由子类指向父类。
在Java中,用extends关键字来直接表示这种关系。
●UML中关联的多重度是指(42)。
(42)A.一个类有多少个方式被另一个类挪用
B.一个类的实例能够与另一个类的多少个实例相关联
C.一个类的某个方式被另一个类挪用的次数
D.两个类所具有的相同的方式和属性
●已知3个类A、B和C,其中类A由类B的一个实例和类C的1个或多个实例组成。
能够正确表示类A、B和C之间关系的UML类图是(43)。
正确答案:
A
解析:
类A由类B的一个实例和类C伪1个或多个实例组成,可见这是整体与部份的关系。
在UML中,用聚集来表示“整体与部份”这种关联,在整体一端连接—个空心菱形。
再按照上题中重复度的解释,显然选择A。
选项B是普通关联,不能准确描述题目要求。
[*]
●面向对象分析的第一步是(33).
(33)A.概念服务B.肯定附加的系统约束
C.肯定问题域D.概念类和对象
●面向对象程序设计语言为(34)提供支持。
(34)A.面向对象用例设计阶段B.面向对象分析阶段
C.面向对象需求分析阶段D.面向对象实现阶段
●下面关于面向对象的描述正确的(35)。
(35)A.针对接口编程,而不是针对实现编程
B.针对实现编程,而不是针对接口编程
C.接口与实现不可分割
D.优先利用继承而非组合
●下面关于UML文档的叙述中正确的是(36)。
(36)A.UML文档指导开发人员如何进行面向对象分析
B.UML文档描述了面向对象分析与设计的结果
C.UML文档给出了软件的开发进程和设计流程
D.UML文档指导开发人员如何进行面向对象设计
解析:
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)的长处。
(41)A.适应需求转变B.程序易于理解
C.减少开发进程中的代码开发工作量D.简化软件系统的设计
●下面的(42)模式将对象组合成树形结构以表示“部份一整体”的层次结构,并使得用户对单个对象和组合对象的利用具有一致性。
(42)A.组合(Composite)B.桥接(Bridge)
C.修饰(Decorator)D.外观(Facade)
●下图描述了一种设计模式,该设计模式不可以(43)。
(43)A.动态决定由一组对象中某个对象处置该请求
B.动态指定处置一个请求的对象集合,并高效率地处置一个请求
C.使多个对象都有机缘处置请求,避免请求的发送者和接收者间的祸合关系
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个无效等价类
C.可划分为2个有效等价类,1个无效等价类
D.可划分为1个有效等价类,1个无效等价类
●面向对象分析需要找出软件需求中客观存在的所有实体对象(概念),然后归纳、抽象出实体类。
(38)是寻觅实体对象的有效方式之一。
(38)A.会议调查B.问卷调查C.调查D.名词分析
●在“模型-视图-控制器”(MVC)模式中,(39)主要表现用户界面,(40)用来描述核心业务逻辑。
(39)A.视图B.模型C.控制器D.视图和控制器
(40)A.视图B.模型C.控制器D.视图和控制器
●在进行面向对象设计时,采用设计模式能够(41)。
(41)A.复用相似问题的相同解决方案B.改善代码的平台可移植性
C.改善代码的可理解性D.增强软件的易安装性
●下面给出了四种设计模式的作用:
外观(Facade):
为子系统中的一组功能挪用提供一个一致的接口,这个接口使得这一子系统加倍容易利用;装饰(Decorate):
当不能采用生成子类的方式进行扩充时,动态地给一个对象添加一些额外的功能;单件(Singleton):
保证一个类仅有一个实例,并提供一个访问它的全局访问点;模板方式(TemplateMethod):
在方式中概念算法的框架,而将算法中的一些操作步骤延迟到子类中实现。
请按照下面叙述的场景选用适当的设计模式。
若某面向对象系统中的某些类有且只有一个实例,那么采用(42)设计模式能够有效达到该目的;该系统中的某子模块需要为其它模块提供访问不同数据库系统(Oracle、SQLServer、DB2UDB等)的功能,这些数据库系统提供的访问接口有必然的不同,但访问进程却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行查询,(43)设计模式可抽象出相同的数据库访问进程;系统中的文本显示类(TextView)和图片显示类(PictureView)
都继承了组件类(Component),别离显示文本和图片内容,现需要构造带有转动条、或带有黑色边框、或既有转动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,(44)设计模式可以实现该目的。
(42)A.外观B.装饰C.单件D.模板方式
(43)A.外观B.装饰C.单件D.模板方式
(44)A.外观B.装饰C.单件D.模板方式
●在采用标准UML构建的用例模型(Use-CaseModel)中,参与者(Actor)与用例(UseCase)是模型中的主要元素,其中参与者与用例之间可以具有(45)关系。
(45)A.包括(include)B.递归(Recursive)
C.关联(Association)D.组合(Composite)
●当采用标准UML构建系统类模型(ClassModel)时,若类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)。
(38)A.边界对象、实体对象、控制对象B.实体对象、边界对象、控制对象
C.控制对象、实体对象、边界对象D.边界对象、控制对象、实体对象
正确答案:
C解析:
本题考查的是采用UML进行面向对象设计进程中,各类不同对象的图形表示,依照上述的图形顺序,别离表示控制对象、实体对象、边界对象。
●在下面的用例图(UseCaseDiagram)中,X1、X2和X3表示(39),已知UC3是抽象用例,那么X1可通过(40)用例与系统进行交互。
而且,用例(41)是UC4的可选部份,用例(42)是UC4的必需部份。
(39)A.人B.系统C.参与者D.外部软件
(40)A.UC4、UC1B.UC5、UC1C.UC5、UC2D.UC1、UC2
(41)A.UC1B.UC2C.UC3D.UC5
(42)A.UC1B.UC2C.UC3D.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)是指把数据和操作数据的相关方式组合在同一个单元中,使咱们可以把类作为软件中的大体复用单元,提高其内聚度,降低其耦合度。
面向对象中的(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(统一建模语言)
本题考查软件开发方式大体概念。
结构化开发方式是传统的、也是应用较为广发的一种软件开发方式,它基于数据流进行需求分析和软件设计,用抽象模型的概念,依照软件内部数据传递和转换关系,对问题和功能自顶向下逐层分解。
Jackson系统开发方式是一种典型的面向数据结构的分析和设计方式,以活动为中心,连续串活动的顺序组合成一个完整的工作进程。
Booch方式是一种面向对象的软件开发方式。
UML仅仅是一种建模标准语言,规定了组成软件的各个元素和构件的图示规范。
●采用UML进行软件设计时,可用(17)关系表示两类事物之间存在的特殊/一般关系,用聚集关系表示事物之间存在的整体/部份关系。
(17)A.依赖B.聚集C.泛化D.实现
本题考查对UML中关系概念的理解。
依照面向对象技术的描述,若两类事物之间存在特殊/一般关系,则用继承机制表示该关系,即UML中的泛化关系。
●在面向对象系统中,用(15)关系表示一个较大的“整体”类包括一个或多个较小的“部份”类。
(15)A.泛化B.聚合C.概化D.合成
●面向对象分析与设计中的(37)是指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封锁的;而