1.单选题(共13题)
1.在面向对象方法中,不同对象收到同一消息可以产生完全不同的结果,这一现象称为[填空(1)]。在使用时,用户可以发送一个通用的消息,而实现的细节则由接收对象自行决定。
A.接口
B.继承
C.覆盖
D.多态
正确答案: D
2.对象、类、继承和消息传递是面向对象的4个核心概念。其中对象是封装( )的整体。
A.命名空间
B.要完成任务
C.一组数据
D.数据和行为
正确答案: D
3.在面向对象技术中,对象具有以下特性( )。 ①清晰的边界②良好定义的行为③确定的位置和数量④可扩展性
A.②④
B.①②③④
C.①②④
D.①②
正确答案: C
4.一个设计得好的面向对象分析系统具有( )
A.低内聚、低耦合的特征
B.高内聚、低耦合的特征
C.高内聚、高耦合的特征
D.低内聚、高耦合的特征
正确答案: B
5.在面向对象程序设计语言中,对象之间通过(1)方式进行通信。以下关于好的面向对象程序设计语言的叙述中,不正确的是(2)。
A.1 : 消息传递 2: 应该支持通过指针进行引用
B.1: 继承 2: 应该支持被封装的对象
C.1: 引用 2: 应该支持类与实例的概念
D.1: 多态 2: 应该支持继承和多态
正确答案: A
6.UML中有4种关系:依赖、关联、泛化和实现。( )是一种结构关系,描述了一组链,链是对象之间的连接;( )是一种特殊/一般关系,使子元素共享其父元素的结构和行为。
A.关联 依赖
B.关联 泛化
C.泛化 关联
D.实现 泛化
正确答案: B
7.在面向对象技术中,不同的对象在收到同一消息时可以产生完全不同的结果,这一现象称为(39),它由(40)机制来支持。利用类的层次关系,把具有通用功能的消息存放在高层次,而不同的实现这一功能的行为放在较低层次,在这些低层次上生成的对象能够给用消息以不同的响应。
A.绑定 多态
B.多态 绑定
C.消息 继承
D.多态 继承
正确答案: D
8.在面向对象的系统中,对象是运行时实体,其组成部分不包括(1);一个类定义了一组大体相似的对象,这些对象共享(2)。
A.1 消息 2 属性和行为
B.1 行为(操作) 2 属性和状态
C.1 对象名 2 对象名和状态
D.1 状态 2 行为和多重
正确答案: A
9.若类A仅在其方法Method1中定义并使用了类B的一个对象,类A其他部分的代码都不涉及类B,那么类A与类B的关系应为( 1 );若类A的某个属性是类B的一个对象,并且类A对象消时,类B对象也随之消失,则类A与类B的关系应为( 2 )。
A.1 继承 2 聚合
B.1 依赖 2 组合
C.1 依赖 2 聚合
D.1 继承 2 组合
正确答案: B
10.一个类是(1)在定义类时,将属性声明为private的目的是(2)。
A.1 一组对象的封装 2 实现属性值对类的所有对象共享
B.1 表示一组对象的层次关系 2 操作符重载;
C.1 一组对象的实例 2 实现属性值不可更改
D.1 -组对象的抽象定义 2 实现数据隐藏,以免意外更改
正确答案: D
11.在类图中,以下那种关系表达总体与局部的关系
A.依赖
B.实现
C.关联
D.聚合
正确答案: D
12.下列关于类之间联系的表述错误的是( )
A.实现关系用虚线加上空心的箭头来表示实现关系
B.聚合关系用一条带实心菱形箭头的实线表示
C.泛化关系用一条带空心三角箭头的实线表示
D.依赖关系用一条带实心三角箭头的虚线表示
正确答案: B
13.在一个课程注册系统中,定义了类CourseSchedule和类Course,并在类CourseSchedule中定义了方法add(c:Course)和方法remove(c:Course),则类CourseSchedule和类Course之间的关系是()
A.关联
B.依赖
C.泛化
D.实现
正确答案: B
2.判断题(共3题)
1.对象表示一个单独的、可确认的物体、单元或实体,它可以是具体的也可以是抽象的,在问题领域里有着确切的角色。
正确
错误
正确答案: yes
2.开闭原则指的是一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的。
正确
错误
正确答案: yes
3.在画类图时,属性或操作如果是public的,可以用“+”表示,protected用“#”表示,private 用“-”表示。
正确
错误
正确答案: yes
3.填空题(共9题)
1.方法的参数列表中如果没有参数,则参数列表可以省略,但(____) 还需要保留。
正确答案: [空括号]
题目解析: 方法的参数列表中如果没有参数,则参数列表可以省略,但空括号还需要保留。
2.客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在(____) 的接口上。
正确答案: [最小]
题目解析: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
3.对象是(____) 的实例,对象图也可看作是类图的实例
正确答案: [类]
4.图中类的名字是 (____) ,类中的行为(方法)是:newReader(),(____) ,deleteReader()该类是(____) 类。控制类是负责协调其他类的工作,它建立了一个或几个用例的行为模型。它整理系统的行为并描述一个系统的动态特性,处理主要的任务和控制流。每个用例通常都有一个控制类、控制用例中的事件顺序。也存在多个用例共享同一个控制类。
正确答案: [ReaderManger, ModifyReader (), 控制]
5.属性名使用英文的名称或动词表示,且单词首字母应小写,如果属性名包含了多个单词,这些单词要合并,除了第一个单词外其余单词的首字母均要(____) 写。
正确答案: [大]
题目解析: 属性名使用英文的名称或动词表示,且单词首字母应小写,如果属性名包含了多个单词,这些单词要合并,除了第一个单词外其余单词的首字母均要大写。
6.(____) (multiplicity)指明该属性类型有多少个实例被关联类所引用,也可以理解为对象之间的包含与属于关系。
正确答案: [多重性]
题目解析: 多重性(multiplicity)指明该属性类型有多少个实例被关联类所引用,也可以理解为对象之间的包含与属于关系。
7.正体字书写的类名说明类是可被实例化的的类,即具体类(concrete class),斜体字说明类是抽象类(abstract class),接口(interface)则用(____) 的方式来表示。
正确答案: [构造型]
题目解析: 正体字书写的类名说明类是可被实例化的的类,即具体类(concrete class),斜体字说明类是抽象类(abstract class),接口(interface)则用构造型的方式来表示。
8.抽象化是开闭原则的关键。在Java、C#等编程语言中,可以为系统定义一个相对稳定的(____) ,而将不同的实现行为移至具体的实现层中完成。
正确答案: [抽象层]
题目解析: 抽象化是开闭原则的关键。在Java、C#等编程语言中,可以为系统定义一个相对稳定的抽象层,而将不同的实现行为移至具体的实现层中完成。
9.在UML中,图是(____) 和(____) 的可视化表示。
正确答案: [事物, 关系]