当前位置:文档之家› 软件开发过程与质量保证-8-面向对象2007-2

软件开发过程与质量保证-8-面向对象2007-2


2009
Software Engineering
类的特点
同类对象具有相同的属性和方法, 同类对象具有相同的属性和方法,是指它 们的定义形式相同, 们的定义形式相同,而不是说每个对象的 属性值都相同。 属性值都相同。 类是静态的 类的存在、 类是静态的;类的存在、语义和关系在程 静态 序执行前就已经定义好了。 序执行前就已经定义好了。 对象是动态的 对象是动态的; 对象在程序执行时可以被 动态 创建和删除。 创建和删除。
对象的特点
对象具有标识
你能够对它命名, 你能够对它命名,以区别于其他对象
对象具有状态
通常有一些数据与它相联系
对象具有行为
使你能够对对象做某些事, 使你能够对对象做某些事,它也能为其他对象做某 些事
2009
Software Engineering
对象
定义
• 可以将问题域中任何事物都视为对象,对象是所 有数据及可对这些数据施加的操作结合在一起所 构成的独立单位的总称,是具有一定知识和处理 构成的独立单位的总称 能力的独立个体。它可以是具体的物理实体,如 一个文件;也可是是人为抽象概念的,如多任务 操作系统中的调度策略。
2009
Software Engineering
对象和类
对象可以是一个人、地址、物品、事件、 对象可以是一个人、地址、物品、事件、 概念、屏幕显示或者报表。 概念、屏幕显示或者报表。类泛化或表示 一组相似的对象,是创建对象的有效模板。 一组相似的对象,是创建对象的有效模板。
一个类表示一组相似的对象。 一个类表示一组相似的对象。 对象是类的实例。 对象是类的实例。 属性是类知道的事情。方法是类完成的事情。 属性是类知道的事情。方法是类完成的事情
对象包含两个基本要素:
• 属性:用于描述对象的静态特征,是反映类或对 象当前状态本质的数据项。 • 方法:用于描述对象的动态特征,反映对象的一 种行为,是对对象属性的操作、服务。
2009
Software Engineering
对象的形象化表示
操作1 操作 界 面 操作3 操作 操作2 操作
方法1 方法2 方法3
2009
Software Engineering
类的特点
同类对象具有相同的属性和方法, 同类对象具有相同的属性和方法,是指它 们的定义形式相同, 们的定义形式相同,而不是说每个对象的 属性值都相同。 属性值都相同。 类是静态的 类的存在、 类是静态的;类的存在、语义和关系在程 静态 序执行前就已经定义好了。 序执行前就已经定义好了。 对象是动态的 对象是动态的; 对象在程序执行时可以被 动态 创建和删除。 创建和删除。
2009
Software Engineering
模块化的例子
For example, break complex systems into smaller modules.
ቤተ መጻሕፍቲ ባይዱ
2009
Software Engineering
什么是继承?
表示两个类之间是“ 表示两个类之间是“is a”、“is like”或“is kind 、 或 of”的关系。特殊类的对象拥有其一般类的全部属 的关系。 的关系 继承。 性与方法,称作特殊类对一般类的继承 性与方法,称作特殊类对一般类的继承。
2009
Software Engineering
继承的分类?
继承可分为单继承和 继承可分为单继承和多继承 单继承
单继承: 单继承:子类只从一个父类继承 多继承: 多继承:子类从多于一个的父类继承
2009
Software Engineering
什么是多态?
从字面上理解,多态就是有多种形态的意思。 从字面上理解,多态就是有多种形态的意思。 就是有多种形态的意思 在面向对象技术中,多态指的是使一个实体 在面向对象技术中,多态指的是使一个实体 在不同的上下文条件下具有不同意义或用法 的能力。 的能力。 多态是保证系统有较好的适应性的一个重要 多态是保证系统有较好的适应性的一个重要 手段,也是用OO技术所表现出来的一个重要 手段,也是用 技术所表现出来的一个重要 特征。 特征。
2009
Software Engineering
类的属性和操作
属性(attribute)是已被命名的类的特性,它 是已被命名的类的特性, 属性 是已被命名的类的特性 描述了该特性的实例可以取值的范围。 描述了该特性的实例可以取值的范围。 操作(operation)是一个服务的实现,该服 是一个服务的实现, 操作( 是一个服务的实现 务可以由类的任何对象请求以影响其行为
例子
设计一个程序,对不同类型的图形求其面积, 并绘制出对应的图形
2009
Software Engineering
传统方法论
2009
Software Engineering
面向对象方法论
2009
Software Engineering
面向对象方法不再把程序看成工作在数据上的 一系列过程或函数的集合,而是把程序看作是 相互协作而又彼此独立的对象的集合。 每个对象可以看作是一个微型程序,有自己的 数据、操作、功能和目的。 面向对象分析和设计解决的两个经典问题
对象 属性
2009
Software Engineering
什么是类? 什么是类?
类是具有相同属性和方法的一组对象的集 合,它为属于该类的全部对象提供了统一 的抽象描述, 的抽象描述,其内部包括属性和方法两个 主要部分。 主要部分。 在图形上,把一个类画成一个矩形 在图形上,把一个类画成一个矩形。
2009
2009
Software Engineering
Beyond Technology
软件开发过程与质量保证
第八章 面向对象基础
2009
Software Engineering
第八章 面向对象
8.1 软件工程方法论 8.2 面向对象的基本概念 8.3 为何使用UML
重点和难点
掌握面向对象的基本概念
2009
2009
Software Engineering
消息
定义
• 消息是用来请求对象执行某一处理或回答某一要求的信 息,是对象之间建立的一种通信机制,它统一了数据流 和控制流。
通常一个消息由三部分组成:
• 对象名:接收消息的对象 • 消息名:要求接收对象完成的操作 • 参数:执行操作时的参数或操作返回的结果
适应不断发生的变化
• 当前软件项目面临的一个突出问题是如何应对变化越 来越快的客户需求,从技术角度上用OOA/D的方法解 决是比较有效的手段: 稳 定 性 增 加 功能:最易变 数据:较易变 对象:较稳定
类 属性 方法
2009
Software Engineering
支持复用技术 与人类的习惯的思维方法一致 稳定性好 可重用性好 较容易开发大型软件产品 可维护性比较好
2009
Software Engineering
传统方法论与面向对象方法论的比较 传统方法
系统是过程的集合 过程与数据实体交互 过程接受输入并产生输出
面向对象方法
系统是交互对象的集合 对象与其它对象交互 对象发送消息 对象发送消息与响应消息 消息与响应消息
2009
Software Engineering
抽象的例子
2009
Software Engineering
什么是封装? 什么是封装?
把相关概念组合进一个项目中, 把相关概念组合进一个项目中, 如类或组件。 如类或组件。 封装描述了如何在系统中划分功 能的问题。 能的问题。 封装是把框体涂黑的做法。 封装是把框体涂黑的做法。
2009
Software Engineering
2009
Software Engineering
面向对象方法论
认为客观世界是由各种对象组成,任何事物 都是对象,复杂的对象可以由比较简单的对 象以某种方式组合而成的。 把所有的对象划分成各种对象类(简称类 class),每个对象类都定义了一组数据和一 组方法。 按照子类(或称为派生类)与父类(或称为 基类)的关系,把若干个对象类组成一个层 次结构的系统。 对象彼此之间仅能通过传递消息互相联系。
2009
Software Engineering
多态的例子
2009
Software Engineering
什么是类? 什么是类?
类是具有相同属性和方法的一组对象的集 合,它为属于该类的全部对象提供了统一 的抽象描述, 的抽象描述,其内部包括属性和方法两个 主要部分。 主要部分。 在图形上,把一个类画成一个矩形 在图形上,把一个类画成一个矩形。
• 传统的分析和设计方法将处理问题的数据模型和处 理模型分离,而面向对象的方法将数据模型和处理 模型二者合一。 • 从系统分析能够平滑地过渡到系统设计。
– UML将分析和设计模型统一,使用的符号统一,设计模型 是分析模型的完善和扩充。
2009
Software Engineering
面向对象方法论的主要优点
面向对象基本概念回顾
对象 类 消息 封装 继承 多态
2009
Software Engineering
什么是对象? 什么是对象?
对象是系统中用来描述客观事物的一个 对象 实体,它是构成系统的一个基本单位。一 个对象由一组属性和对这组属性进行操作 的一组方法组成。
2009
Software Engineering
Software Engineering
软件工程主要方法论
结构化分析和设计方法论
也叫数据流建模方法论 把现实世界描绘为数据在信息系统中的流动,在数 据流动过程中数据发生转化。 通过自顶向下的程序设计将复杂的程序分解为程序 模块的层次图。
存在问题
相关主题