面向对象 期末考试 答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空(15分)
1、类之间的静态联系称作关联。
•在实例化后,由类产生对象,链是关联的实例。
•在系统实现时,关联采用对象的属性来实现。
2、用例图用于建立需求模型,描述用户的需求。对象图是面向对象分析中的基本模型,属于静态结构模型。
3、顺序图(时序图)、通信图、活动图、状态图用于描述系统的行为方面的特征,属于动态结构模型。
4、时序图构成:参与者、相互协作的对象、对象的生命线、参与者与对象之间发送的消息、执行规约
5、表示
[可见性]属性名[:类型][ =初始值]
可见性分为+表示:(公有的)、#表示:(受保护的)、-表示:(私有的)、 ~(包,只有在同一包中声明的类能够使用这一属性)。
二、名词解释(15分)
1、面向对象方法:是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
2、类:是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作务两个主要部分。类的作用是用来创建对象,对象是类的一个实例。
3、抽象:指从事物中舍弃个别的、非本质的、与问题域无关的特征,而抽取共同的、本质特征的、相关的做法。
4、多态性:在具有继承关系的类层次结构中可以定义同名的操作或属性,但这些属性或操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。(“同名不同参”或“同名不同类”)
5、OOA模型:就是通过面向对象的分析所建立的系统分析模型。
用况:一个用况是对参与者使用系统的一项功能的描述,是一组动作序列的描述,是一项请求与响应。(
三、简答(45分)
1、继承和泛化关系
特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。
一般类对特殊类的抽象关系叫泛化关系(简称泛化)。
2、聚合与组合有区别,请说明他们间的区别,并指出下图中哪图是聚合?
聚合刻画了现实事物之间的构成关系,体现“整体——部分”关系。而关联没有组成关系或拥有关系。如例题中的c图
3、简述下图中体现的面向对象的基本思想
答: (1)第一次抽象封装:事物——对象
①首先,直接以问题域(现实世界)中的事物为中心来思考问题、认识问题;②然后,根据这些事物的本质特征和系统责任,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。(对象)这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌.
①用对象的属性(attribute)表示事物的性质(静态特征);用对象的操作(operation)表示事物的行为(动态特征)。②对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节。(对象的封装)③复杂的对象可以用简单的对象作为其构成部分,对象之间是相互联系的。(聚合)④对象之间通过消息进行通讯,以实现对象之间的动态联系. (消息)
(2)第二次抽象(分类):对象——类
①通过抽象对对象进行分类。把具有相同属性和相同操作的对象归为一类,类(class)是这些对象的抽象描述,每个对象是它的类的一个实例。(分类)
②通过关联表达类(一组对象)之间的静态关系。(关联)
(3)第三次抽象:子类——父类
通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档。(继承)
4、为什么说面向对象语言使得从客观世界到计算机世界的语义鸿沟变窄?
5、简单说明OOA与OOD有何区别
答:OOA用面向对象的建模语言对系统要实现的需求进行建模,不考虑与系统的具体实现有关的因素或环境(如编程语言、界面、数据库等);
OOD是针对系统的一组具体实现条件或环境,继续用面向对象的建模语言进行系统设计与实现。
包括两部分工作:
•第一、根据具体实现条件或环境对OOA模型进行修改和调整
•第二、根据具体实现条件或环境建立人机界面、数据存储和控制驱动等。
6、软件复用有何益处、有哪些级别的软件复用,为什么说继承是软件复用的重要形式
益处:
•提高软件开发效率;
•改善软件质量。
复用级别:
•程序(代码)级复用
•分析、设计结果的复用
继承是重要的软件复用形式
7、如何发现参与者?
人员——
系统的直接使用者
设备——
与系统直接相联的设备为系统提供信息
在系统控制下运行
不与系统相联的设备ﻩ
计算机设备ﻩ
外系统——
上级系统
子系统
其它原有系统
8、使用扩展用况描述下用例
9、类和对象的联系有何联系?
•对象是类的实例——由类创建出对象,系统是由若干个对象在计算机中的运行协作完成具体的功能;
•属性相似——一个类的所有对象都具有相同个数、名称、类型和含义的属性,但不同的对象属性具有不同的值;
•操作相同——一个类的所有对象的操作都具有相同的声明和实现
•生命周期——对象具有生命周期,类没有。
10、OO方法中有“实例属性”和“类属性” 之分,请说明什么是“实例属性”和“类属性”?
答: 实例属性包含同一属性的每一个对象(实例)都具有自己的值。
类属性是描述类的所有对象共同特征的一个数据项,对于任何对象实例,它的属性值都是相同的,系统中只存在同一数据空间。C++中冠以static的成员变量是类属性,这样的属性对一个类的全部对象实例只是一份共同的数据空间,所以对任何对象而言,该属性的值总是相同的。
11、在下图中,根据指定的条件标明A、B间的多重性。
给定类A的一个对象a:
(1) a 可以恰好与类B的一个对象关联
(2) a 可以最多与类B的一个对象关联
(3) a 可以与类B的一个或多个对象关联
(4) a 可以与类B的零个或多个对象关联