[计算机类试卷]面向对象技术练习试卷2及答案与解析.doc

上传人:confusegate185 文档编号:507682 上传时间:2018-11-29 格式:DOC 页数:21 大小:273.50KB
下载 相关 举报
[计算机类试卷]面向对象技术练习试卷2及答案与解析.doc_第1页
第1页 / 共21页
[计算机类试卷]面向对象技术练习试卷2及答案与解析.doc_第2页
第2页 / 共21页
[计算机类试卷]面向对象技术练习试卷2及答案与解析.doc_第3页
第3页 / 共21页
[计算机类试卷]面向对象技术练习试卷2及答案与解析.doc_第4页
第4页 / 共21页
[计算机类试卷]面向对象技术练习试卷2及答案与解析.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、面向对象技术练习试卷 2及答案与解析 1 根据如图 1-7所示的 UML类图可知,类 Car和类 Boat中的 move()方法 _。( A)引用了类 Transport的 move()方法 ( B)重置了类 Transport的 move()方法 ( C)是类 Transport的 move()方法的聚集 ( D)是类 Transport的 move()方法的泛化 2 用 UML建立业务模型是理解企业业务过程的第一步。业务人员扮演业务中的角色及其交互方式,例如长途汽车站的售票员是业务人员,大型商场的销售员也是业务人员 ,他们之间的关系是 _。 ( A) Aggregation ( B) Co

2、mposition ( C) Generalization ( D) Association 3 已知 3个类 O、 P和 Q,其中类 O由类 P的一个实例和类 Q的 1个或多个实例构成。能够正确表示类 O、 P和 Q之间关系的 UML类图是 _。4 在某信息管理系统中存在两个类:类 “客户 ”和类 “订单 ”。它们之间的业务关系是: 一个客户提交零个或多个订单; 一个订单由一个且仅由一个客户提交。能够正确表示这个业务关系的 UML类图是 _。5 面向对象系统中有两种基本的复用方式:框架复用和类库复用。下列关于框架和类库的描述不正确的是 _。 ( A)框架是一个 “半成品 ”的应用程序 ( B

3、)类库只包含一系列可被应用程序调用的类 ( C)框架会为一个特定的目的实现一个基本的、可执行的架构 ( D)类库是框架的一种扩展形式 6 下列有关面向对象的叙述不正确的是 _。 ( A)面向对象设计最根本的意图是适应需求变化 ( B)应尽量针对接口编程,而不要针对实现编程 ( C)尽量使用继承而不是聚合,因为继承使得类间的耦合 性最小 ( D)尽量使用已有的类库 7 下列关于面向对象的分析与设计的描述,正确的是 _。 ( A)面向对象设计描述软件要做什么 ( B)面向对象分析不需要考虑技术和实现层面的细节 ( C)面向对象分析的输入是面向对象设计的结果 ( D)面向对象设计的结果是简单的分析模

4、型 8 所有对象可以分成为各种对象类,有一种特殊的类称为抽象类,其主要特征是_。 ( A)没有方法 ( B)没有实例 ( C)没有操作 ( D)没有属性 9 面向对象程序设计的基本思想是,通过建立和客观实际相对应 的对象,并通过这些对象的组合来创建具体的应用。面向对象的程序设计语言必须具备 _特征。 ( A)继承性、封装性、可重用性 ( B)封装性、继承性、多态性 ( C)封装性、多态性、可移植性 ( D)继承性、多态性、可重用性 10 面向对象技术中, _的基本功能,是将一个对象的工作分配到与之相关的更为特殊的对象上,它既可静态定义也可动态定义。 ( A)继承 ( B)分类 ( C)多态 (

5、 D)委托 11 对象及其类型之间的关系称为分类 (classification)。 _的对 象可以改变自身类型或角色。 ( A)动态分类 ( B)多态分类 ( C)逻辑分类 ( D)多重分类 12 面向对象程序设计语言的 _机制,实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。 ( A)模板 ( B)多态 ( C)动态绑定 ( D)多重绑定 13 类的实例化过程不仅仅是根据单个类进行的空问分配、初始化和绑定,它是一种实例的合成过程。指导编译程序进行这种合成的是 _。 ( A)每个实例的初始状态 ( B)实例的个数 ( C)类层次结构 ( D)多态的种 类 14 在以下

6、关于类的相关描述中,不正确的是 _。 ( A)同一个类的对象具有不同的对象自身引用值 ( B)同一个类的对象具有不同的静态数据成员值 ( C)一个类的静态方法只能访问该类的静态成员变量 ( D)一个类的静态成员变量可被该类的所有方法访问 15 以下关于静态多态方法 (函数 )的重载描述中,正确的是 _。 ( A)其方法名 (函数名 )可以不同 ( B)必须在参数顺序或参数类型上有所不同 ( C)只需在返回值类型上有所不同 ( D)必须在返回值类型以及参数类型上有所不同 16 以下叙述中正确的是 _。 ( A)若对象 A可以给对象 B发送消息,那么对象 A、 B相互可见 ( B)对象间不能共享类

7、定义的变量,但可通过类名访问静态变量 (类变量 ) ( C)封装反映了类问的一种层次关系,而组合反映了一种整体与部分的关系 ( D)单身模式能够保证一个类仅有一个实例 17 以下与 “模式 ”相关的叙述中,正确的是 _。 ( A)采用设计模式允许在非面向对象程序设计语言中使用面向对象的概念 ( B)单身模式 (Singleton)描述了只有一个方法和属性的类的集合 ( C)在 MVC(模型 /视图 /控制器 )模式中, 1个模型可以用于多个视图 ( D)在 MVC模式中,控制器是将应用问题域中包含的抽象领域知识呈现给用户的方式 18 重置 (over riding)的基本思想是通过 _机制的支

8、持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。 ( A)对象引用 ( B)动态绑定 ( C)多态迁移 ( D)类型匹配 19 图 1-8描述了一种设计模式,该设计模式不可以 _。( A)将对象连成一条链,并沿着该链传递请求 ( B)动态决定由一组对 象中某个对象处理该请求 ( C)使多个对象都有机会处理请求,避免请求的发送者和接收者间的耦合关系 ( D)动态指定处理一个请求的对象集合,并高效率地处理一个请求 19 在一个客户信息系统中存在两种类型的客户:个人客户和集团客户。对于个人客户,系统中保存了其客户标识和基本信息 (包括姓名、住宅电话和 emil)

9、;对于集团客户,系统中保存了其客户标识,以及与该集团客户相关的若干个联系人的信息(联系人的信息包括姓名、住宅电话、 email、办公电话和职位 )。 根据上述描述,得到了如图 1-5所示的 UML类图,其中类 “客 户 ”的属性有 (1):类 “人 ”的属性有(2)。 20 (1) ( A)客户标识 ( B)姓名、住宅电话、 email ( C)姓名、住宅电户、办公电话、 email、职位 ( D)客户标识、办公电话、职位 21 (2) ( A)客户标识 ( B)姓名、住宅电话、 email ( C)姓名、住宅电户、办公电话、 email、职位 ( D)客户标识、办公电话、职位 21 回调 (

10、Callback)函数是面向过程的程序设计语言中常用的一种机制,而设计模式中的 (1)模式就是回调机制的一个面向对象的替代品。该模式 的意图是 (2)。 22 (1) ( A) Strategy(策略 ) ( B) Adapter(适配器 ) ( C) Command(命令 ) ( D) Observer(观察者 ) 23 (2) ( A)使原本由于接口不兼容而不能一起工作的那些类可以一起工作 ( B)将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作 ( C)定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象

11、都得到通知并被自动更新 ( D)使算法可独立于使用它的客 户而变化 23 在面向对象技术中,一个子类的对象同时又属于父类,它继承了父类的一切属性,这种多态性称为 (1)。同一个算子在不同的表达式中可能有不同的操作意义,这种多态性称为 (2)。编译程序根据上下文判定算子的操作意义,这称为 (3)。 24 (1) ( A)参数多态 ( B)过载多态 ( C)包含多态 ( D)隐含多态 25 (2) ( A)参数多态 ( B)过载多态 ( C)包含多态 ( D)隐含多态 26 (3) ( A)算子鉴别 ( B)算子操作 ( C)算子定义 ( D)算子运算 26 己知 3个类 O、 P和 Q,类 O中

12、定义了一个私有方法 F1、一个公有方法 F2和一个受保护的方法 F3:类 P和类 Q是类 O的派生类,其继承方式如下所示: class P: protected O ; class Q: public O ; 关于方法 F1的描述中正确的是 (1);关于方法 F2韵描述中正确的是 (2);在关于方法 F3的描述中正确的是 (3)。 27 (1) ( A)方法 F1无法被访问 ( B)只有在类。内才能访问方法 F1 ( C)只有在类 P内才能访问方法 Fl ( D)只有 在类 Q内才能访问方法 F1 28 (2) ( A)类 O、 P和 Q的对象都可以访问方法 F2 ( B)类 P和 Q的对象都

13、可以访问方法 F2 ( C)类 O和 Q的对象都可以访问方法 F2 ( D)只有在类 P内才能访问方法 F2 29 (3) ( A)类 O、 P和 Q的对象都可以访问方法 F3 ( B)类 O、 P和 Q的对象都不可以访问方法 F3 ( C)类 O和 Q的对象都可以访问方法 F3,但类 P的对象不能访问方法 F3 ( D)类 P和 Q的对象都可以访问方法 F3,但类 Q的对象不能访问方法 F3 面向对象技术练习试卷 2答案与解析 1 【正确答案】 B 【试题解析】 在 UML类图中, “ ”表示其相联的两个类之间存在泛化关系,即在图 1-7中显示了一个继承结构:类 Transport为基类,其

14、子类分别为类 Car和类 Boat。同是注意到,在图 1-7中的类 Transport的名字之下有一个标识 。该标识用于说明该类是一个抽象类,类中的方法 move()必须在子类中重新定义的纯虚拟函数。由图 1-7中可以看出,在两个子类中都定义了函数原型完全相同的move()方法。 在面向对象程序设计中,使用动态多态一一重置 (overriding)时需满足 3个条件: 类之间具有继承关系、 基类中至少定义一个纯虚拟函数、 在子类中重新定义这个纯虚拟函数。因此,图 1-7给出的 UML类图结构满足了重置的 3个条件,说明子类 Car和子类 Boat中的 move()方法重置了基类 Transpo

15、rt的move()方法。 【知识模块】 面向对象技术 2 【正确答案】 C 【试题解析】 选项 A的 “聚集关系 (Aggregation)”是关联关系 (Association)的一种特例,它代表两个类之间的整体和局部关系。例如,一台电脑与键盘、鼠标、显示器之间就存在着聚集关系。聚集暗 示着整体在概念上处于比局部更高的一个级别,在实例图中不存在回路,即只能是一种单向关系。 选项 B的 “组装关系 (Composition)”是聚集关系的一种特殊形式,它暗示 “局部 ”在 “整体 ”内部的生存期职责。例如,某电子商务公司与其销售部、财务部之间就存在着组装关系。聚集和组装是 UML中两种非常重要

16、的关系,它们都表示实例之间的整体 /部分关系。组装是聚集的一种形式。聚集是概念性的,只是区分整体与部分。组装具有很强的归属关系,而且整体与部分的对象生存周期是一致的。 选项 C的 “泛化关系 (Generalization)”用于表示类与类、接口与接口之间特殊的关系,由子类指向父类,即子类从父类中继承,而父类是子类的泛化。因此,汽车站的售票员、商场的销售员与类 “业务人员 ”之间存在着泛化关系。 选项 D的 “关联关系 (Association)”,用于描述两个概念上位于相同级别的类的实例之间存在的某种语义上的联系。例如,售票员小张为某个长途汽车站工作, 1个汽车站有多辆长途汽车,那么售票员小

17、张与长途汽车站、汽车站与汽车就存在着关联关系。 【知识模块】 面向对象技术 3 【正确答案】 D 【试题解析】 由试题中的关健信息 “类 O由类 P的一个实例和类 Q的 1个或多个实例构成 ”可知,类 O、 P、 Q之间存在着 “整体 部分 ”的构成关系,即类 O表示整体概念,类 P、 Q为部分概念。在 UML规范中,构成关系可以使用关联和聚集来表示。在 UML模型图中,关联的图示是一条连接相同或不同类的实线 (或) 。聚集是一种特殊的关联,在整体的一端用一个空心菱形修饰,即其图示是“ ”。图示 “ ”表示的是一种泛化关系,据此可排除选项 A和选项 B。 选项 C中,类 Q端的关联多重度被指定

18、为 “1* ,说明类 Q中必须包含 (1*) 个类 O的对象,这与试题中 的描述恰好相反,因此选项 C是错误答案,选项 D是正确答案。 【知识模块】 面向对象技术 4 【正确答案】 D 【试题解析】 由试题中的关健信息 “ 一个客户提交 0个或多个订单; 一个订单由一个且仅由一个客户提交 ”可知,对应每个 “订单 ”类的实例,都必须存在 1个“客户 ”类的实例,对应每个 “客户 ”类的实例,可能存在 0个或多个 “订单 ”类的实例。可见,正确表示该信息管理系统中类 “客户 ”和类 “订单 ”之间业务关系,是选项 D的 UML类图。 选项 A的图示 “ ”表示的是一种泛化关系 (继承关系的反关系

19、 );选项 B的图示 “ ”表示的是一种聚集关系 (一种特殊的关联关系 ),空心菱形的一端表示整体的概念;选项 C的图示 “” 也是表示一种关联关系,但该UML类图所表达的关联多重度不符合试题的描述。 【知识模块】 面向对象技术 5 【正确答案】 D 【试题解析】 本试题讨论的主题是框架和类库之间的区别。类库是一种预先定义的程序库,它以程序模块的形式,按照类层次结构把一组类的定义和实现组织在一起。可见,类库只包含一系列可被应用程序调用的类。 框架是类库的一种扩展形式,它为一个特定的目的实现一个基本的、可执行的架构。通 俗地讲,它是一个 “半成品 ”的应用程序。 【知识模块】 面向对象技术 6

20、【正确答案】 C 【试题解析】 面向对象的设计原则之一是:针对接口编程,而不是针对实现编程。遵循这个原则的好处有: 客户不必知道其使用对象的具体所属类; 客户无需知道特定类,只需知道他们所期望的接口; 一个对象可以很容易地被实现了相同接口的的另一个对象所替换; 对象间的连接不必硬绑定到一个具体类的对象上,灵活性高; 增加了重用的可能性,提高了对象组合的机率; 松散耦合。 继承会使得类问的耦合性变大,因此 使用类问聚合比使用类间继承好。 【知识模块】 面向对象技术 7 【正确答案】 B 【试题解析】 面向对象分析主要解决的问题是系统要 “做什么 ”,即描述系统的逻辑模型。通常它不考虑具体的技术和

21、实现层面的细节。面向对象分析的结果是面向对象设计的输入。 面向对象设计主要解决的问题是系统要 “怎么做 ”,即描述系统的物理模型。 【知识模块】 面向对象技术 8 【正确答案】 B 【试题解析】 对象是数据及其操作的封装体。对象的 名字、 属性和 方法是对象的 3要素。对象之间的服务请 求可通过传递消息来实现。所有对象可以分成为各种对象类,每个对象都定义了一组方法。通常每个类都有实例。没有实例的类称为抽象类。 【知识模块】 面向对象技术 9 【正确答案】 B 【试题解析】 对象是数据以及在其上的操作的封装体。对象的 3要素是指对象的名字、属性和方法。面向对象的程序设计语言必须具备继承性、多态性

22、、封装性等特征。 Java、 C+、 Visual Bsasic、 VistlalC+、 Smalltalk均属于面向对象的程序设计语言。 【知识模块】 面向对象技术 10 【正确答 案】 D 【试题解析】 在面向对象技术中,对已有实例的特征稍作改变就可生成其他的实例的方式称为继承。继承的基本功能是将一些功能相关的对象进行归类表示,使得子对象具有其父对象属性的能力。 分类 (Classification)是指对象及其类型之问的关系。 多态是指作用于不同的对象的同一个操作可以有不同的解释,从而产生不同的执行结果。 委托是一种既可静态定义也可动态定义的复杂关系,其基本功能是将一个对象的工作分配到与

23、之相关的更为特殊的对象上。可见,委托使一个对象可以依赖其他对象为它完 成某些操作。 【知识模块】 面向对象技术 11 【正确答案】 D 【试题解析】 选项 A的 “动态分类 ”是指一个对象可用 n个类型的表述,而这些类型不必由继承来关联。而选项 D的 “多重分类 ”的对象可以改变自身类型或角色。这两种分类都是一般化的一种语义变体。选项 B、 C可能是两个虚构的选项。 【知识模块】 面向对象技术 12 【正确答案】 C 【试题解析】 选项 A的 “模板 (template)”是面向对象技术的一种参数化类。选项B的 “多态性 ”使作用于不同的对象的同一个操作可以有不同的解释 ,从而产生不同的执行结

24、果。选项 C的 “动态绑定 (dynamic binding)”是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体的对象。选项 D是一个虚构的选项。 【知识模块】 面向对象技术 13 【正确答案】 C 【试题解析】 在一个面向对象的系统中,子类与父类之间的继承关系就构成了该系统的类层次结构,通常单继承用树来描述,多继承用格来描述。当执行一个子类的实例生成方法时,首先在类层次结构中从该子类沿继承路径回溯至它的一个基类,然后 自项向下地执行该子类所有父类的实例生成方法,最后执行该子类实例生成方法的函数体。可见,类层次结构指导编译程序进行类的

25、实例化合成。 【知识模块】 面向对象技术 14 【正确答案】 B 【试题解析】 类允许开发者自定义一种新的类型及其相关的操作。类是对象的模板,对象是类的实例。选项 A的 “对象自身引用值 ”是面向对象程序设计语言中特有的、十分重要的机制。每个对象都有属于自己的对象自身引用值。 选项 B的 “静态数据成员 ”用来实现同一个类的不同对象之间的数据共享,它不属于某个对象。同一个类的不同对 象共享静态数据成员值。如该值被类中某一对象修改时,同类的其他对象也可看到此次修改。注意: “不同的类的对象具有相同的静态数据成员值 ”的表述也是错误的。 静态成员可分为静态成员变量和静态方法。只要对静态成员变量的值

26、更新一次,所有对象的该静态成员变量值都会被更新。静态成员函数可以直接访问静态成员,但不能直接访问非静态成员。 【知识模块】 面向对象技术 15 【正确答案】 B 【试题解析】 方法的重载必须保证方法的签名不同。其中,方法的签名是指方法(函数 )的名字及其参数的类型和顺序。重载要求 在参数的顺序或参数类型上有所不同,对返回值没有要求。 【知识模块】 面向对象技术 16 【正确答案】 D 【试题解析】 若对象 A可以给对象 B发送消息,表明对象 A可以调用对象 B的方法,那么对象 A可看见对象 B。 类也可以有变量,所有类的对象都共享该类的变量,同时也可通过类名访问静态变量。 单身模式 (Sing

27、leton)是一种创建型模式,它抽象了实例化过程,可帮助一个系统独立于如何创建、组合和表示它的对象。其意图是保证一个类仅有一个实例 (注意:不是保证一个类的方法只能被一个唯一的类 调用 ),并提供一个访问它的全局访问点。 【知识模块】 面向对象技术 17 【正确答案】 C 【试题解析】 在面向对象软件开发过程中,设计模式使开发人员可以更加简单、方便地复用成功的设计和体系结构,它是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。其 4个基本要素是:模式名称、问题 (模式的使用场合 )、解决方案和效果。 单身模式用于保证一个类仅有一个实例,并提供一个访问它的全局访问点。对于系统中的

28、某些类,只有一个实例是很重要的。 MVC(模型 /视图 /控制器 )是为 需要为同样的数据提供多个视图的应用程序而设计的,它能很好地使数据层和表示层分离。这种架构模式把应用程序分为 模型、 视图、 控制器等 3种对象类型。其中, 模型是应用问题域中包含的抽象领域知识; 视图是将应用问题域中包含的抽象领域知识呈现给用户的方式, 1个模型可以用于多个视图; 控制器是指用户界面对用户输入的响应方式。 【知识模块】 面向对象技术 18 【正确答案】 B 【试题解析】 重置 (over riding)的基本思想是通过动态绑定机制的支持,使得子类在继承父类界面定义的前提下,用适合于 自己要求的实现去置换父

29、类中的相应实现。在 Java语言中,通过抽象方法来进行重置的声明,通过方法查找实现重置方法体的动态绑定。在 c+语言中,通过虚拟函数的定义来进行重置的声明,通过虚拟函数跳转表结构来实现重置方法体的动态绑定。 【知识模块】 面向对象技术 19 【正确答案】 D 【试题解析】 图 1-8给出的是 Chain of Responsibility(职责链 )对象行为型设计模式。其设计意图是:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并 沿着这条链传递该请求,直到有一个对象处理它为止。 图 1-8中 Client可调用 Handler接口, Handl

30、er接口可以有后继,因此当一个Client向 Handler发出一个 HandleRequest请求时,可以有多个具体的ConcreteHandler来响应该请求。由于处理该请求的 ConcreteHandler形成一个具体的链,所以处理时效率并不高。 【知识模块】 面向对象技术 【知识模块】 面向对象技术 20 【正确答案】 A 【知识模块】 面向对象技术 21 【正确 答案】 B 【试题解析】 由试题关健信息可知, “对于个人客户,系统中保存了其客户标识 对于集团客户,系统中保存了其客户标识 ” 由此, “客户标识 ”是个人客户和集团客户的共同属性,因此该标识也必然是类 “客户 ”的一个属

31、性。据此可先排除问题 (1)的选项 B和选项 C。对于问题 (1)选项 D的 “办公电话、职位 ”是类 “集团客户 ”的属性,如果它们也是类 “客户 ”的属性,那么类 “个人客户 ”也必然继承这两个属性,而试题中对于类 “个人客户 ”无此相关描述,可见选项 D不是正确答案。因此依据试题的描述,类 “客户 ”的属性只有 “客户标识 ”。 在 UML类图中,“ ”表示其相联的两个类之间存在泛化关系,即在图 1-5中类 “人 ”是类 “联系人 ”的基类; “ ”表示其相联的两个类之间存在关联关系,即在图 1-5中类 “人 ”与类 “个人客户 ”之间具有关联关系。由试题关健信息 “对于个人客户,系统中

32、保存了其客户标识和基本信息 (包括姓名、住宅电话和 E-mail)”,以及问题 (1)分析中类“个人客户 ”继承了类 “客户 ”的 “客户标识 ”属性,可见类 “个人客户 ”还有 “姓名、住宅电话和 E-mail”属性没有体现,在图 1-5中这些属性应该从类 “人 ”中进行关联。 从试题关健信息 “联系 人的信息包括姓名、住宅电话、 E-mail、办公电话和职位 ”可知,类 “联系人 ”除了从类 “人 ”中继承了 “姓名、住宅电话、 E-mail”属性之外,还追加了 “办公电话、职位 ”属性。这一点分析也证明了类 “人 ”具有 “姓名、住宅电话、 E-mail”的属性。 解答此类试题的关健思路

33、是识记 UML各种关系的图示,以及消化关联的多重度概念。 【知识模块】 面向对象技术 【知识模块】 面向对象技术 22 【正确答案】 C 【知识模块】 面向对象技术 23 【正确答案】 B 【试题解析】 在面向过程的 程序设计语言中,回调 (callback)函数是指函数先在某处注册,而它将在稍后某个需要的时候被调用。它实际上是一种参数化机制。 Command(命令 )模式的设计意图就是 “将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作 ”。其中一种应用场合就是抽象出待执行的动作以参数化某种对象,可用过程语言中的回调 (cal

34、lback)函数表达这种参数化机制。 Command模式是回调机制的一个面向对象的替代品。 Observer(观察者 )模式的设 计意图就是 “定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 ”。 Strategy(策略 )模式使得算法可独立于使用它的客户而变化。 Adapter(适配器 )模式是一种类对象结构型模式。通过将一个的类的接口转换成客户希望的另外一个接口。 Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。 【知识模块】 面向对象技术 【知识模块】 面向对象技术 24 【正确答案】 C 【知识模块】 面

35、向对象技术 25 【正确答案】 B 【知识模块】 面向对象技术 26 【正确答案】 A 【试题解析】 本试题的前两个问题讨论的主题是与 “多态性 ”相关的内容。多态性是指作用于不同的对象的同一个操作可以有不同的解释,从而产生不同的执行结果。通俗地说,具有相似功能的不同函数使用同一个函数名来实现,从而可以使用相同的调用方法来调用这些具有不同功能的同名函数。多态性可分为 参数多态、 包含多态、 过载多态、 隐含多态等 4种类型。这些类型各自实现的功能及区别见表 1-8。 通常将编译程序根据上下文判定算子的操作意义的 过程称为算子鉴别。 解答此类试题的一般思路是消化、理解与面向对象技术相关的基本概念

36、。 【知识模块】 面向对象技术 【知识模块】 面向对象技术 27 【正确答案】 B 【知识模块】 面向对象技术 28 【正确答案】 C 【知识模块】 面向对象技术 29 【正确答案】 B 【试题解析】 解答此类试题的一般思路是掌握类的各种继承方式以及它们的访问权限。 面向对象技术解决软件复用的途径之一是采用继承机制。在继承关系中存在着基类和派生类两种类型,访问控制方式主要有 public(公 有派生 )、protected(保护派生 )和 private(私有派生 )。基类中成员的访问权限在派生类中的继承关系如表 1-10所示。 根据试题中相关描述以及 “class P: protected

37、O ; ”和 “class Q: public O ; ”语句,结合表 1-10的继承关系可知,类 P、 Q的成员函数及其访问控制如表 1-11所示。 由试题的关健信息 “类 O中定义了一个私有方法 F1”可知,方法 F1是基类 O的private(私有 )成员。同时通过表 1-10可知,类 P、 Q继承了 F1方法,但其访问权限是 private,结合表 1-9最后一行的继承关系可得,只有在基类 O的内部成员才能访问方法 F1,而派生类 P、 Q的内部成员是不可访问方法 F1的。因此问题 (58)的正确答案是选项 B。 由于方法 F2是基类 O中定义的一个公有方法,由此可知基类 O的对象可以

38、访问方法 F2,因此问题 (59)选项 D的描述是错误的。 通过表 1-10可知,类 Q继承了 F2方法,其访问权限也是 public,因此派生类 Q的对象可以访问方法 F2。 在表 1-10中类 P对方法 F2的访问权限是 protected,结合表 1-9第 4行的继承关系可得,派生类 P的对象是不可访问方法 F2的,只有在派生类 P的的内部成员才可以访问方法 F2。因此问题 (59)的正确答案是选项 C。 同理,由于方法 F2是基类 O中定义的一个受保护的方法,通过表 1-10可知,派生类 P、 Q对 F3方法的访问权限均是 protected,结合表 1-9第 5行的继承关系可得,基类 O和派生类 P、 Q的对象都不能可访问方法 F3,只有在类 O、 P、 Q的内部成员才可以访问方法 F3。因此问题 (60)的正确答案是选项 B。 【知识模块】 面向对象技术

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1