系统分析与设计_9_面向对象方法学引论.ppt
文本预览下载声明
几何对象 颜色 位置 移动(delta:矢量) 选择(P:指针型):布尔型 旋转(角度) 图9.1对象类的描述 人 姓 名:字符串 年 龄: 整 型 改换工作 改换地址 文件 文件名 文件大小 最近更新日期 打印 (人) 张红兵 28 绘图员 人民路8号 (人) 李军 24 程序员 无 图9.2 对象的描述 对象和类的描述 对象和类一般采用“对象图” 和 “类图” 来描述。 类名 属性 运算 对象图 类图 2、 继承 (Inheritance) 继承是使用现存的定义作为基础,建立新定义的技术。是父类和子类之间共享数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容做为自己的内容,并加入若干新内容。 继承性分类: 单重继承:一个子类只有一个父类。即子类只继承一个父类 的数据结构和方法。 多重继承:一个子类可有多个父类。继承多个父类的数据结 构和方法。 基类 子类A 子类B 继承性描述 现存类定义 父类(基类) 新类定义 子类(派生类) 继 承 继承性 3、消息(Message) 消息就是向对象发出的服务请求(互相联系、协同工作等)。对象之间的联系可表示为对象间的消息传递,即对象间的通讯机制。 一个消息应该包含以下信息:消息名、接收消息对象的标识、服务标识 、消息和方法、输入信息、回答信息。 注意:在并发系统中,多个控制线程(Thread of Control)并发执行,情况就复杂得多,消息可以是发出服务请求、提交数据、发布事件信息、或是传递同步控制信息。 在对象的操作中当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的消息。 3、消息(Message) 属性:姓名 年龄 单位 职称 工资 状态:李伟 25 计算机系 讲师 900 属性:调工资 评职称 受 聘 方法:调工资 (计算公式) 评职称 (步骤、条件) 属性:调工资 评职称 受 聘 李伟,调工资(?????? ) 数 据 结 构 数 据 值 人事处向对象发消息 执行的 操作 方法体 类:教师 对象:李伟 抽象 实例 抽象 实例 抽象 方法名(参数) 图9.3 对象、类和消息传递 4. 多态性和动态绑定 多态性(Polymorphism)是指相同的操作或函数,过程作用于不同的对象上并获得不同的结果。 即相同的操作的消息发送给不同的对象时,每个对象将根据自己所属类中所定义的操作去执行,故产生不同的结果。 例如: “绘图”操作,作用在“椭圆” 和“矩形” 上,画出不同的图形。 动态绑定(dynamic binding)是在运行时根据对象接收的消息动态地确定要连接的服务代码。 5、方法(method) 类中操作的实现过程称为方法。 一个方法包括方法名、参数及方法体。 方法描述了类与对象的行为,每一个对象都封装了数据和算法两个方面,数据由一组属性表示,而算法即是当一个对象接收到一条消息后,它所包含的方法决定对象如何动作。通常是在某种编程语言(如Java、C++)下实施的运算。 9.3 面向对象建模 用面向对象方法成功地开发软件的关键,同样是对问题域的理解。面向对象方法最基本的原则,是按照人们习惯的思维方式,用面向对象观点建立问题域的模型,开发出尽可能自然地表现求解方法的软件。 用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。 这3种模型从,它们各自从不同侧面反映了系统的实质性内容,综合起来则全面地反映了对目标系统的需求。 一个典型的软件系统组合了上述3方面内容:它使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。 用面向对象方法开发软件,在任何情况下,对象模型始终都是最重要、最基本、最核心的。 在整个开发过程中,3种模型一直都在发展、完善。在面向对象分析过程中,构造出完全独立于实现的应用域模型;在面向对象设计过程中,把求解域的结构逐渐加入到模型中;在实现阶段,把应用域和求解域的结构都编成程序代码并进行严格的测试验证。 下面分别介绍上述3种模型。 9.4 对象模型 面向对象方法强调围绕对象而不是围绕功能来构造系统。对象模型为建立动态模型和功能模型,提供了
显示全部