软件工程第六章面向对象方法概述讲解学习

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ 若在逻辑上A是B的“一部分”(a part of), 则不允许B继承A的功能,而是要用A和其它东 西组合出B。 头与眼睛、鼻子、耳朵、嘴巴的 关系。
▪ 尽量避免使用多重继承。 ▪ 继承的层次不宜太多
多态性
▪ 对不同的消息表现出不同的行为 ▪ 覆盖与重载
➢ 虚方法 ➢ 参数重载
参数数目不同 参数类型不同 参数类型顺序不同
软件工程
第17讲:面向对象方法
主讲人:阳王东 Email:yangwangdong@
主要内容
▪ 编程的沉思 ▪ 什么是面向对象 ▪ 面向对象的特征 ▪ 对象之间的关系
编程的沉思
▪ 编程存在重复劳动吗
➢ 机器替代了人手工的重复劳动 ➢ 程序则替代了人脑的重复性劳动 ➢ 编程无重复
▪ 程序中的世界

提供物品,

帐单,入库 、出库
属 商标,型号,
性 计量单位、价
抽象
格、数量
入库、销售 服 ▪ 子类自动地共享基类中定义的数据和方法的机制。
➢ 基类与派生类 ➢ 单继承与多重继承
▪ 继承的优点
➢ 减少原代码,即代码可重用。 ➢ 代码的相互独立性。 ➢ 易于维护。 ➢ 体现自然界之间的关系。
▪ 归纳关系体现为一种继承关 系
归纳关系(续)
组合关系
▪ 组合关系就是“整 体—部分”关系,它 反映了对象之间的构 成关系。组合关系也 称为聚集关系。
▪ 组合关系具有的最重 要的性质是传递性。 也就是说,如果A是B 的一部分,B是C的一 部分,则A也是C的一 部分
组合关系(续)
关联关系
▪ 关联关系反映对象之 间相互依赖、相互作 用的关系。通常把两 类对象之间的二元关 系再细分为一对一 (1∶1)、一对多(1∶M) 和多对多(M∶N)等三 种基本类型,类型的 划分依据参与关联的 对象的数目

➢ 消息选择符(也称为方法名) ➢ 零个或多个参数值。
▪ 对象A向对象B发送消息f就是对象A调用对象B的 方法f
面向对象的特征
▪ 以数据为中心,抑或以行为为中心
➢ 分别用上述两种方式来描述人
▪ 封装性 ▪ 继承性 ▪ 多态性
封装性
▪ 封装性是把对象的属性和方法结合成一个独立的 单元,并尽可能荫蔽对象的内部细节。
学生 1..n
1 班级
1
班主任 1
关联关系(续)
▪ 链属性。关联链可以通过关联类来实现
班级
课程
课程表
对象模型实例
作业
▪ 利用面向对象的方法对项目的题目进行初 步业务对象分析和描述。
继承性(续)
▪ 车辆的继 承关系
▪ 动物科目
划分的一 灵长目
种继承关

人科
车辆
非机动车 机动车
哺乳动物
翼手目
食肉目
猴科
犬科
自行车 人力车 客车 卡车 拖拉机
鲸目
猫科

猩猩
狗 狼 狐猫 虎 豹
继承性(续)
▪ 不要滥用继承
➢ 如果类A和类B毫不相关,不可以为了使B的功 能更多些而让B继承A的功能。 人想拥有狗鼻 子的灵敏问题。
▪ 抽象类和接口
➢ 实现与继承
类与对象的描述
▪ (a)是表示类—&—对象的图形符号,(b)是表 示类的图形符号。
对象之间的关系
▪ 归纳关系 ▪ 组合关系 ▪ 关联关系。
归纳关系
▪ 归纳关系就是“一般—特珠” 关系,它反映了一个类与若 干个互不相容的子类之间的 分类关系。高层类(即基类) 说明一般性的属性,低层类 (即派生类)说明特殊属性。 低层类对象是某种特殊的高 层类对象,它继承了在高层 类中定义的属性和服务。
的封装体 ➢ 对象是一台自动机。 ➢ 对象∷=<ID,MS,DS,MI>
其中,ID MS DS MI是对象受理的消息名集合(即对外接口)
➢ 对象(Object)是类(Class)的一个实例(Instance)。
面向对象的基本概念(续)
▪ 消息,就是要求某个对象执行在定义它的那个类 中所定义的某个操作的规格说明。通常,一个消 息由下述三部分组成:
➢ Public,private,protected ➢ 避免访问内部数据 ➢ 尽量通过方法访问
▪ 优点
➢ 数据独立 (每个对象都对应于一个独立的地址空间) ➢ 具有隐藏性和安全性 ➢ 易于维护(由于数据独立,易于发现问题)
▪ 缺点
➢ 需要较多的输入输出函数
超市销售系统
仓库
商品
属 抽象 性
价格表,物品列 表, 帐单
➢ 经典的公式:数据结构+算法 ➢ 面向对象认为软件功能是通过一个个对象的行为来完
成的。
▪ 庖丁解牛的三重境界
眼中全牛,心中无牛 心中解牛 心中全牛
面向对象的基本概念
▪ 对象的定义
➢ 对象是具有相同状态的一组操作的集合。 ➢ 对象是对业务系统中某个东西的抽象,这种抽象反映了系统
保存有关这个东西的信息或与它交互的能力。 ➢ 对象是封装了数据结构及可以施加在这些数据结构上的操作
相关文档
最新文档