4.1.2面向对象的概念 4、消息( Message 抽象 类:教师 实例 对象:李伟 属性:姓名 状态:李伟 年龄 数据结构 抽象 25 数 单位 实例 计算机系据 职称 讲师 值 工资 900 操作:调工资 抽象 操作:调工资执行 评职称 评职称 的 受聘 方法名(参数) 受聘操作 方法:调工资 人事处向对象发消息 (计算公式)(方 评职称 法 李伟,调工资(…) 〔步骤、条件》体 图4.5对象、类和消息传递
4、消息(Message) 4.1.2 面向对象的概念 属性:姓名 年龄 单位 职称 工资 状态:李伟 25 计算机系 讲师 900 操作:调工资 评职称 受 聘 方法:调工资 (计算公式) 评职称 (步骤、条件) 操作:调工资 评职称 受 聘 李伟,调工资(•••••• ) 数 据 结 构 数 据 值 人事处向对象发消息 执行 的 操作 方 法 体 类:教师 对象:李伟 抽象 实例 抽象 实例 抽象 方法名(参数) 图4.5 对象、类和消息传递
4.1.2面向对象的概念 5、多态性和动态绑定 多态性( Polymorphism)是指相同的操作或函数,过程 作用于不同的对象上并获得不同的结果。 即相同的操作的消息发送给不同的对象时,每个对象 将根据自己所属类中所定义的操作去执行,故产生不同的 结果 例如:“绘图”操作,作用在“椭圆”和“矩形 上,画出不同的图形。 动态绑定 dynamic binding)是在运行时根据对象接收 的消息动态地确定要连接的服务代码
5、多态性和动态绑定 多态性(Polymorphism)是指相同的操作或函数,过程 作用于不同的对象上并获得不同的结果。 即相同的操作的消息发送给不同的对象时,每个对象 将根据自己所属类中所定义的操作去执行,故产生不同的 结果。 例如: “绘图”操作,作用在“椭圆” 和“矩形” 上,画出不同的图形。 动态绑定(dynamic binding)是在运行时根据对象接收 的消息动态地确定要连接的服务代码。 4.1.2 面向对象的概念
4.1.2面向对象的概念 6、永久对象 Persistent object) 所谓永久对象是指生存期可以超越程序的执行时间而长期 存在的对象。 目前,大多数OoPL不支持永久对象,如果一个对象要长 期保存,必须依靠于文件系统或数据库管理系统实现,程序 员需要作对象与文件系统或数据库之间数据格式的转换,以 及保存和恢复所需的操作等烦琐的工作。 为了实现永久对象,使上述烦琐工作由系统自动完成,需 要较强的技术支持;需要一个基于永久对象管理系统OMS ( object management system)能够描述和处理永久对象的编 程语言
6、永久对象(Persistent object) 所谓永久对象是指生存期可以超越程序的执行时间而长期 存在的对象。 目前,大多数OOPL不支持永久对象,如果一个对象要长 期保存,必须依靠于文件系统或数据库管理系统实现,程序 员需要作对象与文件系统或数据库之间数据格式的转换,以 及保存和恢复所需的操作等烦琐的工作。 为了实现永久对象,使上述烦琐工作由系统自动完成,需 要较强的技术支持;需要一个基于永久对象管理系统OMS (object management system),能够描述和处理永久对象的编 程语言。 4.1.2 面向对象的概念
4.2面向对象的开发过程 4.2面向对象的开发过程 应用生存期 在面向对象开发的各个阶段,开发的“部件”都是类 因此面向对象的各个阶段都是对类的信息进行细化。类是分 析、设计和实现的基本单元。 虽然图中各阶段的顺序是线 信息系 客户输入 性的,但实际过程的交错和相互 统描述 作用要复杂得多。 论 分析 应用 分析 其主要开发过程如下 高层 设计 OOA 论域分析( domain analysis) 应用分析( application 实例 开发 组装 建立 analysis) 测试 高层设计、下层设计 维护 OOD 类的设计对象设计 图46面向对象开发过程的应用生存期模型
图4.6 面向对象开发过程的应用生存期模型 OOA 应用生存期 在面向对象开发的各个阶段,开发的“部件”都是类, 因此面向对象的各个阶段都是对类的信息进行细化。类是分 析、设计和实现的基本单元。 虽然图中各阶段的顺序是线 性的,但实际过程的交错和相互 作用要复杂得多。 OOD 其主要开发过程如下: 论域分析(domain analysis) 应用分析(application analysis) 高层设计、下层设计 类的设计-对象设计 4.2 面向对象的开发过程 4.2面向对象的开发过程
23面向对象的分析 4.3面向对象的分析 面向对象分析OOA( Object-Oriented Analysis)的目标是完成 对所求解问题的分析,确定系统“作什么”,并建立系统的 模型 OOA的基本任务 运用面向对象的方法对问题域和系统责任进行分析和理 解,找出描述它们的类和对象,定义其属性和操作,及其结 构、静态联系和动态联系。 OOA面临的问题 1、问题域和系统责任问题 问题域 (problem domain)—被开发系统的应用领域。 系统责任( system responsibilities-所开发的系统应具备的 职能。 2、交流问题(各类人员之间的要求) 3、需求的不断变化(用户、竞争因素、经费、技术因素)
4.3 面向对象的分析 2.3 面向对象的分析 面向对象分析OOA(Object-Oriented Analysis)的目标是完成 对所求解问题的分析,确定系统“作什么” ,并建立系统的 模型。 OOA的基本任务 运用面向对象的方法,对问题域和系统责任进行分析和理 解,找出描述它们的类和对象,定义其属性和操作,及其结 构、静态联系和动态联系。 OOA面临的问题: 1、问题域和系统责任问题 问题域(problem domain) — 被开发系统的应用领域。 系统责任(system responsibilities) — 所开发的系统应具备的 职能。 2、交流问题(各类人员之间的要求) 3、需求的不断变化(用户、竞争因素、经费、技术因素)