对象基本概念

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UML提出四种关系——依赖、关联、泛化、实 现。
➢ 依赖(dependency)关系是两个事物间的语义关 系,其中一个事物(规格说明)发生变化会影响另 一事物。(例,订单和产品之间的关系)
➢ 泛化(generalization)关系是一种“特殊/一般”关 系,也即特殊事物和一般事物之间的关系。(例)
动态特征即对象所表现的行为或对象所具有的功能。
2.对象的定义
我们从现实世界、数据世界以及系统观点等三个 不同的角度,给出对象的定义。
1)从现实世界的角度看对象
在现实世界中,对象定义为:问题的概念和抽象 的或具有明确边界和意义的事物。
例如,课程管理是问题域的问题,而课程就是其中的 概念(事物),也就是对象。
反映面向对象本质的“主体—动作模式是与人们 对客观世界的认识规律相符合的,从而使得软件工程 如此广泛的领域在对象技术上建立了共同的基础。”
3. 面向对象的基本思想
(1)传统的软件系统构成及其存在的问题
传统的软件系统是由一个函数或过程的集合和一 个被这些函数或过程所操纵的数据集组成的。其静态 结构模型如下图所示:
2. 面向对象的本质*
面向对象的本质可以用一句话来概括:确定动作的 主体在先,而执行动作在后,这种模式称为“主体—动 作”模式。
例如:数据是对象的主体,因此分析一个实体总是先分析 其数据性质,也即实体的属性,然后才去考虑对数据施加 哪些操作。
“主体—动作”模式 的特点:
将对象作为软件系统结构的基本组成单元,以主 体数据为中心,对数据和作用在数据上的操作进行封 装,以标准接口规范对外提供服务。
应该说,上面的解释具有片面性,下面我 们从面向对象的含义、本质等方面来探讨这一 问题。
1. 面向对象的基本含义
➢ 把软件系统看成是一系列离散对象的集合,并 强调刻画对象性质的数据及行为的紧密联系,也 即应用封装技术来实现这种联系。
➢ 在强调实体(事物)封装性的同时,也应充分 考虑存在于同一系统中的各个实体之间的有机联 系,也即实体关系。
f2
f1

f3
2.1.2 对象和类
主要讨论对象和类的定义、对象的种类、对象的主 要性质等,侧重于概念和术语。
1.什么是对象
“对象是现实世界中一个实际存在的事物,它可 以是有形的(比如一辆汽车),也可以是无形的(比 如一项计划)”。
任何一个对象都具有自己的静态特征和动态特征。
静态特征是指可以用数据来描述的事物的特性。 (例略)
问题的答案:必须检查每一个函数,以确定数据结 构的变化是否使函数受到干扰。
3. 面向对象的基本思想(续)
存在的问题
(1)为了新结构而改动的函数可能对系统的其他部型
函数(事物的行为)和它们所需存取的数据(事 物的属性)被封装在称为对象的包内(信息隐蔽), 其它对象的函数不能直接访问这些数据。对应的模型 如下图所示:
➢ 关联(association)是一种结构关系,更多地涉及 到事物之间的相互联系、相互作用和引用,具有动态 特征。 (例) ➢ 实现(realization)是类元之间的语义关系。
例:学籍管理系统是由学生、教师、教辅人员、课程、各 种规章制度等多个彼此独立而又相互关联的对象集合而成; 学生是一个抽象实体,它可以具体化为:本科生、专科生、 研究生等等,教师、教辅人员则可以抽象为一个更具一般 化的实体——“教职工”,这些都是泛化关系。学生、教师 课程等实体之间则存在着各种关联,例如学生选择课程, 老师讲授课程等等。
3. 面向对象的基本思想(续)
f2
f1

函数(事物的行为)和它们
所需存取的数据(事物的属 性)被封装在称为对象的包 内(信息隐蔽),其它对象 的函数不能直接访问这些数 据。对应的模型如下图所示:
f3 ✓ 蛋壳作为接口,隐蔽了 函数和数据结构的实现。
✓ 可以将对象看成是鸡 蛋:蛋黄是数据结构, 蛋清由访问数据的函数 组成,蛋壳代表明显可 见的操作标记。
2.对象的定义 (续)
2)从数据世界的角度看对象
在数据世界中,对象定义为:一组数据以及施加 于这组数据上的一组操作。
✓ 数据刻划对象的特性或属性,操作刻划对象的行为 或功能;对象的属性可以是简单数据类型、结构数据 类型也可以是复杂数据类型(例如另一个对象) 。
【例】窗口上的一个文本框对象包含有外部名(Name)、 字体(Font)、数据源(Data Source)、前景颜色 (Fore Color) 、高度和宽度(Height、Width)等多种 属性,同时还带有单击左键(Click)、双击左键 (Double Click)、修改文本(Chang)等多个操作。
函数集
f1
D
f2
B
f3
M
……
S
fn
数据集
A C
B
3. 面向对象的基本思想(续)
从该模型可以看出,在模型所抽象的系统运行时, 发生以下动作: (1)f1读取数据A并将处理结果写到数据B中。 (2)f2读取数据A并将处理结果写到数据C中。
问题:在这种将事物的数据与行为分离的模式下, 当数据结构的一部分改变时,我们必须做什么?
第二章 面向对象的基本知识
主要内容: ➢ 与面向对象有关的概念、名词、术语; ➢ 面向对象的特征与要素;
2.1 面向对象的基本概念
2.1.1 什么叫面向对象(Object -Orient )
《面向对象方法 原理与实践》一书关于面 向对象这一术语的解释是: “ 面向对象系统 是基于对象的、基于类的,支持类和超类间的 继承,并且允许对象发送消息给它们自己。”
2.对象的定义 (续)
3)从系统的观点看对象
从系统的观点出发,我们可以给对象作如下定义: 对象是系统中用来描述客观事物的一个实体,它是构 成系统的一个基本单位(单元),一个对象是由一组 属性和对这组属性进行操作的一组服务构成的。
✓ 如果数据结构改变了, 维护人员只需检查对应的 鸡蛋的蛋清,维护被限制 在局部范围。
✓ 如果实现变化了,其他 对象不会受到影响。
3. 面向对象的基本思想(续)
✓ 面向对象的基本思想就 是封装:数据和处理过程 结合在一起并隐蔽在接口 后面。
f2
f1

f3
✓ 在封装的情况下,必须 允许对象之间传递消息, 获得对方的服务,以获取 被封装的数据。模型的改 进如又图所示:
相关文档
最新文档