面向对象.docx
- 文档编号:4052145
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:102
- 大小:728.18KB
面向对象.docx
《面向对象.docx》由会员分享,可在线阅读,更多相关《面向对象.docx(102页珍藏版)》请在冰点文库上搜索。
面向对象
窗体顶端
面向对象
您现在的位置:
希赛网 > 云阅读 > 软件设计师考试试题分类精解(2018版) > 试题1(2017年下半年试题15-16)
第8章:
面向对象作者:
希赛软考学院 来源:
希赛软考学院 2017年11月21日
试题1(2017年下半年试题15-16)
某医院预约系统的部分需求为:
患者可以查看医院发布的专家特长介绍及其就诊时间;系统记录患者信息,患者预约特定时间就诊。
用DFD对其进行功能建模时,患者是( );用ERD对其进行数据建模时,患者是( )。
(15)A.外部实体
B.加工
C.数据流
D.数据存储
(16)A.实体
B.属性
C.联系
D.弱实体
试题分析
1、患者不涉及加工,为外部实体。
2、患者有其信息,所以为实体。
试题答案
(15)A(16)A
试题2(2017年下半年试题37-38)
在面向对象方法中,将逻辑上相关的数据以及行为绑定在一起,使信息对使用者隐蔽称为( )。
当类中的属性或方法被设计为private时,( )可以对其进行访问。
(37)A.抽象
B.继承
C.封装
D.多态
(38)A.应用程序中所有方法
B.只有此类中定义的方法
C.只有此类中定义的public方法
D.同一个包中的类中定义的方法
试题分析
1、封装是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。
2、只有此类中定义的方法可以对私有成员进行访问。
试题答案
(37)C(38)B
试题3(2017年下半年试题39)
采用继承机制创建子类时,子类中( )。
(39)A.只能有父类中的属性
B.只能有父类中的行为
C.只能新增行为
D.可以有新的属性和行为
试题分析
子类相对于父类,要更加特殊。
所以会有新的成员来描述其特殊。
试题答案
(39)D
试题4(2017年下半年试题40)
面向对象分析过程中,从给定需求描述中选择( )来识别对象。
(40)A.动词短语
B.名词短语
C.形容词
D.副词
试题分析
名词短语暗示类及其属性动词和动词短语暗示对职责或操作。
试题答案
(40)B
试题5(2017年下半年试题41-43)
如下所示的UML类图中,Shop和Magazine之间为( )关系,Magazine和Page之间为( )关系。
UML类图通常不用于对( )进行建模。
(41)A.关联
B.依赖
C.组合
D.继承
(42)A.关联
B.依赖
C.组合
D.继承
(43)A.系统的词汇
B.简单的协作
C.逻辑数据库模式
D.对象快照
试题分析
1、关联关系的表示图法。
2、实心凌形表示组合。
3、对象快照是对象图的。
试题答案
(41)A(42)C(43)D
试题6(2017年下半年试题44-47)
自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:
交付产品不找零;交付产品并找零;存入货币不足而不提供任何产品;库存不足而不提供任何产品。
这一业务需求适合采用( )模式设计实现,其类图如下图所示,其中( )是客户程序使用的主要接口,可用状态来对其进行配置。
此模式为( ),体现的最主要的意图是( )。
(44)A.观察者(Observer)
B.状态(State)
C.策略(Strategy)
D.访问者(Visitor)
(45)A.VendingMachineState
B.Buy
C.VendingDepositState
D.VendingStockState
(46)A.创建型对象模式
B.结构型对象模式
C.行为型类模式
D.行为型对象模式
(47)A.当一个对象状态改变时所有依赖它的对象得到通知并自动更新
B.在不破坏封装性的前提下,捕获对象的内部状态并在对象之外保存
C.一个对象在其内部状态改变时改变其行为
D.将请求封装为对象从而可以使用不同的请求对客户进行参数化
试题分析
1、有State关键词,状态模式:
允许一个对象在其内部状态改变时改变它的行为。
对象看起来似乎修改了它的类。
在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。
当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。
2、是整个状态模式的基类也是对外的接口。
试题答案
(44)B(45)A(46)D(47)C
试题7(2017年上半年试题37-38)
在面向对象方法中,两个及以上的类作为一个类的超类时,称为( ),使用它可能造成子类中存在( )的成员。
(37)A.多重继承
B.多态
C.封装
D.层次继承
(38)A.动态
B.私有
C.公共
D.二义性
试题分析
多重继承是指一个类有多个父类,正是题目所述的情况。
多重继承可能造成混淆的情况,出现二义性的成员。
试题答案
(37)A(38)D
试题8(2017年上半年试题39)
采用面向对象方法进行软件开发,在分析阶段,架构师主要关注系统的( )。
(39)A.技术
B.部署
C.实现
D.行为
试题分析
采用面向对象方法进行软件开发,分析阶段,架构师主要关注系统的行为,即系统应该做什么。
试题答案
(39)D
试题9(2017年上半年试题40)
在面向对象方法中,多态指的是( )。
(40)A.客户类无需知道所调用方法的特定子类的实现
B.对象动态地修改类
C.一个对象对应多张数据库表
D.子类只能够覆盖父类中非抽象的方法
试题分析
多态:
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。
也就是说客户类其实在调用方法时,并不需要知道特定子类的实现,都会用统一的方式来调用。
试题答案
(40)A
试题10(2017年上半年试题41-43)
以下UML图是( ),图中
和
表示( ),
和
表示( )。
(41)A.序列图
B.状态图
C.通信图
D.活动图
(42)A.类
B.对象
C.流名称
D.消息
(43)A.类
B.对象
C.流名称
D.消息
试题分析
从图示可以了解到,题目中的图是通信图。
通信图描述的是对象和对象之间的关系,即一个类操作的实现。
简而言之就是,对象和对象之间的调用关系,体现的是一种组织关系。
该图明显表达的是对象与对象之间的关系。
其中如果一个框中的名称中带有“:
”号,说明这表示的是一个对象,“:
”号前的部分是对象名,“:
”号后面的部分是类名。
而对象之间连线上面的箭头所标识的是对象之间通信的消息。
试题答案
(41)C(42)B(43)D
试题11(2017年上半年试题44-45)
下图所示为观察者(Obserrver)模式的抽象示意图,其中( )知道其观察者,可以有任何多个观察者观察同一个目标;提供住处和删除观察者对象的接口。
此模式体现的最主要的特征是( )。
(44)A.Subject
B.Observer
C.ConcreteSubject
D.ConcreteObserver
(45)A.类应该对扩展开放,对修改关闭
B.使所要交互的对象尽量松耦合
C.组合优先于继承使用
D.仅与直接关联类交互
试题分析
观察者将自己注册到事件,那么具体的事件就知道了自己的观察者。
观察者和事件都有自己的抽象,当实现具体的观察者和事件的时候都要实现相应接口,所以对扩展是开放的。
试题答案
(44)C(45)A
试题12(2017年上半年试题46-47)
装饰器(Decorator)模式用于( );外观(Facade)模式用于( )。
①将一个对象加以包装以给客户提供其希望的另外一个接口
②将一个对象加以包装以提供一些额外的行为
③将一个对象加以包装以控制对这个对象的访问
④将一系列对象加以包装以简化其接口
(46)A.①
B.②
C.③
D.④
(47)A.①
B.②
C.③
D.④
试题分析
装饰模式是一种对象结构型模式,可动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。
通过装饰模式,可以在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;当需要动态地给一个对象增加功能,这些功能可以再动态地被撤销时可使用装饰模式;当不能采用生成子类的方法进行扩充时也可使用装饰模式。
外观模式是对象的结构模式,要求外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
试题答案
(46)B(47)D
试题13(2016年下半年试题37)
在面向对象方法中,不同对象收到同一消息可以产生完全不同的结果,这一现象称为( )。
在使用时,用户可以发送一个通用的消息,而实现的细节则由接收对象自行决定。
(37)A.接口
B.继承
C.覆盖
D.多态
试题分析
本题考察面向对象多态的概念
在收到消息时,对象要予以响应。
不同的对象收到同一消息可以产生完全不同的结果,这种现象就叫多态。
试题答案
(37)D
试题14(2016年下半年试题38)
在面向对象方法中,支持多态的是( )。
(38)A.静态分配
B.动态分配
C.静态类型
D.动态绑定
试题分析
动态绑定是实现多态的基础
试题答案
(38)D
试题15(2016年下半年试题39)
面向对象分析的目的是为了获得对应用问题的理解,其主要活动不包括( )。
(39)A.认定并组织对象
B.描述对象间的相互作用
C.面向对象程序设计
D.确定基于对象的操作
试题分析
面向对象分析的任务是了解问题域所涉及的对象、对象间的关系和操作,然后构造问题的对象模型。
试题答案
(39)C
试题16(2016年下半年试题40)
如下所示的UML状态图中,( )时,不一定会离开状态B
(40)A.状态B中的两个结束状态均达到
B.在当前状态为B2时,事件e2发生
C.事件e2发生
D.事件e1发生
试题分析
e2发生时只是从B2出来,还有B4等,不一定离开了B
试题答案
(40)C
试题17(2016年下半年试题41)
以下关于UML状态图中转换(transition)的叙述中,不正确的是( )。
(41)A.活动可以在转换时执行也可以在状态内执行
B.监护条件只有在相应的事件发生时才进行检查
C.一个转换可以有事件触发器、监护条件和一个状态
D.事件触发转换
试题分析
转换应该有多个状态
试题答案
(41)C
试题18(2016年下半年试题42-43)
下图①②③④所示是UML( )。
现有场景:
一名医生(Doctor)可以治疗多位病人(Patient),一位病人可以由多名医生治疗,一名医生可能多次治疗同一位病人。
要记录哪名医生治疗哪位病人时,需要存储治疗(Treatment)的日期和时间。
以下①②③④图中( )。
是描述此场景的模型。
(42)A.用例图
B.对象图
C.类图
D.协作图
(43)A.①
B.②
C.③
D.④
试题分析
1是标准的类图
2.根据题中关系描述,应该是3.这时候医生跟病人关系是多对多,且治疗这个处理过程正确
试题答案
(42)C(43)C
试题19(2016年下半年试题44-45)
( )模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化。
以下( )情况适合选用该模式。
①一个客户需要使用一组相关对象
②一个对象的改变需要改变其它对象
③需要使用一个算法的不同变体
④许多相关的类仅仅是行为有异
(44)A.命令(Command)
B.责任链(ChainofResponsibility)
C.观察者(Observer)
D.策略(Strategy)
(45)A.①②
B.②③
C.③④
D.①④
试题分析
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。
策略模式让算法独立于使用它的客户而独立变化。
应用场景:
1、多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。
2、需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。
3、对客户隐藏具体策略(算法)的实现细节,彼此完全独立。
试题答案
(44)D(45)C
试题20(2016年下半年试题46-47)
( )模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。
以下( )情况适合选用该模式。
①抽象复杂对象的构建步骤
②基于构建过程的具体实现构建复杂对象的不同表示
③一个类仅有一个实例
④一个类的实例只能有几个不同状态组合中的一种
(46)A.生成器(Builder)
B.工厂方法(FactoryMethod)
C.原型(Prototype)
D.单例(Singleton)
(47)A.①②
B.②③
C.③④
D.①④
试题分析
生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
实用范围
1当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2当构造过程必须允许被构造的对象有不同表示时。
试题答案
(46)A(47)A
试题21(2016年上半年试题37-38)
在面向对象方法中,( )是父类和子类之间共享数据和方法的机制。
子类在原有父类接口的基础上,用适合于自己要求的实现去置换父类中的相应实现称为( )。
(37)A.封装
B.继承
C.覆盖
D.多态
(38)A.封装
B.继承
C.覆盖
D.多态
试题分析
继承是父类和子类之间共享数据和方法的机制。
覆盖是子类的方法覆盖了基类的方法,以实现不同的功能,或者对父类的功能进行扩充。
试题答案
(37)B(38)C
试题22(2016年上半年试题39)
在UML用例图中,参与者表示( )。
(39)A.人、硬件或其他系统可以扮演的角色
B.可以完成多种动作的相同用户
C.不管角色的实际物理用户
D.带接口的物理系统或者硬件设计
试题分析
参与者是指存在于系统外部并直接与系统进行交互的人、系统、子系统或类的外部实体的抽象。
试题答案
(39)A
试题23(2016年上半年试题40)
UML中关联是一个结构关系,描述了一组链。
两个类之间( )关联。
(40)A.不能有多个
B.可以有多个由不同角色标识的
C.可以有任意多个
D.的多个关联必须聚合成一个
试题分析
两个类之间可以由不同角色标识存在多个关联,如:
试题答案
(40)B
试题24(2016年上半年试题41-43)
如下所示的UML图是( ),图中(Ⅰ)表示( ),(Ⅱ)表示( )。
(41)A.序列图
B.状态图
C.通信图
D.活动图
(42)A.合并分叉
B.分支
C.合并汇合
D.流
(43)A.分支条件
B.监护表达式
C.动作名
D.流名称
试题分析
本题所涉及到的图为活动图,该图容易与状态图混淆,对于初学者,可以把握一个原则来判断,即:
状态图中每个结点对应的是状态,而状态与状态之间的变迁涉及到事件触发,所以在状态图中,每条箭线上都会有事件,而活动图则不一定有。
在活动图中,各个组成部分的标准名称为:
试题答案
(41)D(42)A(43)B
试题25(2016年上半年试题44)
为图形用户界面(GUI)组件定义不同平台的并行类层次结构,适合采用( )模式。
(44)A.享元(Flyweight)
B.抽象工厂(AbstractFactory)
C.外观(Facade))
D.装饰器(Decorator)
试题分析
抽象工厂模式的特点
试题答案
(44)B
试题26(2016年上半年试题45)
( )设计模式将一个请求封装为一个对象,从而使得可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。
(45)A.命令(Command)
B.责任链(ChainofResponsibility)
C.观察者(Observer)
D.策略(Strategy)
试题分析
命令模式的特点为:
将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作
试题答案
(45)A
试题27(2016年上半年试题46)
( )设计模式最适合用于发布/订阅消息模型,即当订阅者注册一个主题后,此主题有新消息到来时订阅者就会收到通知。
(46)A.适配器(Adapter)
B.通知(Notifier)
C.观察者(Observer)
D.状态(State)
试题分析
观察者模式:
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
试题答案
(46)C
试题28(2016年上半年试题47)
因使用大量的对象而造成很大的存储开销时,适合采用( )模式进行对象共享,以减少对象数量从而达到较少的内存占用并提升性能。
(47)A.组合(Composite)
B.享元(Flyweight)
C.迭代器(Iterator)
D.备忘(Memento)
试题分析
享元模式提供支持大量细粒度对象共享的有效方法。
试题答案
(47)B
试题29(2015年下半年试题37-38)
在面向对象的系统中,对象是运行时实体,其组成部分不包括( );一个类定义了一组大体相似的对象,这些对象共享( )。
(37)A.消息
B.行为(操作)
C.对象名
D.状态
(38)A.属性和状态
B.对象名和状态
C.行为和多重度
D.属性和行为
试题分析
对象的组成部分包括:
对象名,状态(属性),行为(操作)。
一个类产生的对象共享属性和行为。
试题答案
(37)A(38)D
试题30(2015年下半年试题39)
如下所示的UML类图中,Car和Boat类中的move()方法( )了Transport类中的move()方法。
(39)A.继承
B.覆盖(重置)
C.重载
D.聚合
试题分析
覆盖:
子类重写父类的方法。
重载:
一个类可以有多个同名而参数类型不同的方法。
试题答案
(39)B
试题31(2015年下半年试题40-42)
如下所示的UML图中,(I)是( ),(Ⅱ)是( ),(Ⅲ)是( )。
(40)A.参与者
B.用例
C.泛化关系
D.包含关系
(41)A.参与者
B.用例
C.泛化关系
D.包含关系
(42)A.参与者
B.用例
C.泛化关系
D.包含关系
试题分析
本题考查统一建模语言(UML)的基本知识。
用例图(usecasediagram)展现了一组用例、参与者(Actor)以及它们之间的关系。
用例图通常包括用例、参与者,以及用例之间的扩展关系(<
如下图所示。
用例图用于对系统的静态用例视图进行建模,主要支持系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。
试题答案
(40)A(41)C(42)B
试题32(2015年下半年试题43)
下所示为UML( )。
(43)A.类图
B.部署图
C.组件图
D.网络图
试题分析
本题考查统一建模语言(UML)的基本知识。
UML中提供了多种建模系统的图,体现系统的静态方面和动态方面。
类图(classdiagram)展现了一组对象、接口、协作和它们之间的关系。
在面向对象系统的建模中所建立的最常见的图就是类图。
类图给出系统的静态设计视图。
部署图(deploymentdiagram)是用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。
部署图对系统的静态部署视图进行建模,它与组件图(构件图)相关。
组件图或构件图(componentdiagram)展现了一组构件之间的组织和依赖,如题中的图所示。
组件图或构件图专注于系统的静态实现视图。
它与类图相关,通常把构件映射为一个或多个类、接口或协作。
UML部署图经常被认为是一个网络图。
试题答案
(43)C
试题33(2015年下半年试题44)
以下关于Singleton(单例)设计模式的叙述中,不正确的是( )。
(44)A.单例模式是创建型模式
B.单例模式保证一个类仅有一个实例
C.单例类提供一个访问唯一实例的全局访问点
D.单例类提供一个创建一系列相关或相互依赖对象的接口
试题分析
抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类,而非单例模式。
试题答案
(44)D
试题34(2015年下半年试题45-47)
( )设计模式能够动态地给一个对象添加一些额外的职责而无需修改此对象的结构;( )设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类;欲使一个后端数据模型能够被多个前端用户界面连接,采用( )模式最适合。
(45)A.组合(Composite)
B.外观(Facade)
C.享元(Flyweight)
D.装饰器(Decorator)
(46)A.工厂方法(FactoryMethod)
B.享元(Flyweight)
C.观察者(Observer)
D.中介者(Mediator)
(47)A.装饰器(Decorator)
B.享元(Flyweight)
C.观察者(Observer)
D.中介者(Mediator)
试题分析
抽象工厂模式(AbstractFactory):
提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。
构建器模式(Builder):
将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示。
工厂方法模式(FactoryMethod):
定义一个创建对象的接口,但由子类决定需要实例化哪一个类。
工厂方法使得子类实例化的过程推迟。
原型模式(Prototype):
用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象。
单例模式(Singleton):
保证一个类只有一个实例,并提供一个访问它的全局访问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象