第一章 面向对象的一般概念_第1页
第一章 面向对象的一般概念_第2页
第一章 面向对象的一般概念_第3页
第一章 面向对象的一般概念_第4页
第一章 面向对象的一般概念_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章第一章 面向对象的一般概念面向对象的一般概念 1.1面向对象问题求解的提出面向对象问题求解的提出 软件开发面临的问题软件开发面临的问题 理论上理论上 如何解决复杂如何解决复杂-简化、缩短开发周期、易维护等简化、缩短开发周期、易维护等 语言方面语言方面 机器语言机器语言-面向过程面向过程-面向对象面向对象 面向对象的程序设计面向对象的程序设计 结构化程序设计化结构化程序设计化 模块化模块化 数据抽象数据抽象 信息隐藏信息隐藏 知识表示知识表示 并行处理并行处理 优点优点 提高了软件的生产力(提高了软件的生产力(可扩充、可重用可扩充、可重用) 减小了维护开销减小了维护开销(复杂性降低、标准件

2、使用复杂性降低、标准件使用) 更接近人的思维活动更接近人的思维活动 面向对象方法面向对象方法 分析(分析(OOA Object Oriented Analysis) 设计(设计(OOD Object Oriented Designed) 实现(实现(OOP Object Oriented Programming)1.2 面向对象问题求解概述面向对象问题求解概述 面向过程面向过程 以具体的解题以具体的解题过程过程为研究和实现的主体为研究和实现的主体 面向对象面向对象 以解决问题中所涉及到的各种以解决问题中所涉及到的各种为主体为主体 面向对象程序设计核心围绕几个概念面向对象程序设计核心围绕几个概念

3、抽象数据类型和类抽象数据类型和类类的层次类的层次- -子类子类继承和多态继承和多态 对象对象(Object)-面向对象技术的核心面向对象技术的核心 对象是现实世界的实体或概念在计算机逻辑中的抽对象是现实世界的实体或概念在计算机逻辑中的抽象表示象表示 一个对象包含数据结构及相关的操作一个对象包含数据结构及相关的操作 例如:某台电视机,特指的某辆汽车例如:某台电视机,特指的某辆汽车 黑盒黑盒 用户用户 只关心能做什么?如汽车的功能:代步、运输等等只关心能做什么?如汽车的功能:代步、运输等等 而不必关心具体内部原理,即如何做?而不必关心具体内部原理,即如何做? 面向对象的程序是由对象组成,这些对象应

4、具有以面向对象的程序是由对象组成,这些对象应具有以下特征:下特征: 自治性:自治性:数据结构和操作合为一体,且私有和公有分开,数据结构和操作合为一体,且私有和公有分开,可以达到保护、减少干扰、降低复杂性、提高可靠性。可以达到保护、减少干扰、降低复杂性、提高可靠性。 自恰性:自恰性:可以通过自身定义的操作来管理自己可以通过自身定义的操作来管理自己 接口和消息机制:接口和消息机制:消息隐藏、通过接口体现功能消息隐藏、通过接口体现功能. 抽象抽象 抽象的概念抽象的概念 从特定的实体中抽取共性形成一般化概念的过程从特定的实体中抽取共性形成一般化概念的过程 简化了的描述,强调共性,忽略一部分细节简化了的

5、描述,强调共性,忽略一部分细节 描述描述说明说明 解释解释实现实现 抽象是具有层次的,高层抽象视其低层抽象为它的一种实现抽象是具有层次的,高层抽象视其低层抽象为它的一种实现是人们理解复杂现象和求解复杂问题中处理复杂性的重要工具是人们理解复杂现象和求解复杂问题中处理复杂性的重要工具 面向对象的抽象原理面向对象的抽象原理 数据抽象数据抽象 模块化模块化 信息隐藏信息隐藏 行为共享行为共享 进化进化 确定性确定性 类类 类的概念类的概念 创建对象的样板创建对象的样板 包含外部接口和内部算法以及数据结构的包含外部接口和内部算法以及数据结构的形式形式 简单化:是同种对象的集合与抽象简单化:是同种对象的集

6、合与抽象 例:电脑是一个类(手提式、台式、掌上例:电脑是一个类(手提式、台式、掌上电脑电脑) 类、实体、对象的相互关系类、实体、对象的相互关系 实体与对象的关系实体与对象的关系 实体实体现实世界(电视机、汽车)现实世界(电视机、汽车) 对象对象计算机世界(电视的属性和功能)计算机世界(电视的属性和功能)对对象象计算机世界计算机世界 类类现实世界现实世界实体实体抽象数据类抽象数据类映射映射计算机逻辑的实现计算机逻辑的实现实例化实例化抽象抽象抽象抽象概念世界概念世界 面向对象技术的一个关键的设计思想面向对象技术的一个关键的设计思想 让计算机逻辑来模拟现实世界的物理存在让计算机逻辑来模拟现实世界的物

7、理存在 让计算机世界向现实世界靠拢让计算机世界向现实世界靠拢面向对象面向对象 反之让现实向计算机靠拢反之让现实向计算机靠拢面向过程面向过程 最终目的最终目的 接近自然的思维模式接近自然的思维模式 更接近于现实问题的本来面目的方法、设计更接近于现实问题的本来面目的方法、设计 缩短开发周期缩短开发周期 易于维护易于维护1.3 对象的属性对象的属性 1.3.1 对象的属性对象的属性 对象的状态对象的状态(又称静态属性)(又称静态属性) 对象内部所包含的各种信息,即变量。对象内部所包含的各种信息,即变量。 行为又称操作或方法行为又称操作或方法(动态属性)(动态属性) 其作用是设置或改变对象的状态其作用

8、是设置或改变对象的状态 方法方法(行为)和状态的关系行为)和状态的关系状态状态是否开启是否开启所在频道所在频道行为:打开行为:打开行为:改变频道行为:改变频道 方法将对象的内部变量(状态)包方法将对象的内部变量(状态)包裹、封装、保护裹、封装、保护 只能通过方法改变状态只能通过方法改变状态 方法是对象与外界交互的接口方法是对象与外界交互的接口面向对象的问题求解的面向对象的问题求解的最终形成一个广泛联系的、可理解最终形成一个广泛联系的、可理解的、可扩充的、可维护的更接近问的、可扩充的、可维护的更接近问题原形的动态对象模型系统题原形的动态对象模型系统 1.3.2 对象的关系对象的关系 包含包含当对

9、象当对象A是对象是对象B的属性时,称对象的属性时,称对象B包含对象包含对象A。 例:电视机例:电视机显像管,汽车显像管,汽车发动机发动机 继承继承当对象当对象A是对象是对象B的特例时,称对象的特例时,称对象A继承了对象继承了对象B。 例:小汽车例:小汽车(小轿车、小货车、小客车(小轿车、小货车、小客车) 学生学生(小学生、中学生、大学生(小学生、中学生、大学生) 父父公共关系集合公共关系集合 子子除公共以外,有属于自己的特殊属性除公共以外,有属于自己的特殊属性 关联关联当对象当对象A的引用是对象的引用是对象B的属性时,称对象的属性时,称对象A、B为关联关系为关联关系 对象的引用:可以获取或操作

10、该对象的途径(线索)对象的引用:可以获取或操作该对象的途径(线索) 例:汽车对象中包含厂商对象的线索(厂名、址、电话例:汽车对象中包含厂商对象的线索(厂名、址、电话) 注意注意包含和继承包含和继承 的区别的区别 包含:是整体中不可缺少的一个部分包含:是整体中不可缺少的一个部分 继承:是在已有之上细化(具体化、继承:是在已有之上细化(具体化、扩充)扩充),是一般与特殊的结构关系是一般与特殊的结构关系.包含和关联包含和关联 的区别的区别 包含:含有实体包含:含有实体 关联:不含实体,只包含与实体相关关联:不含实体,只包含与实体相关的线索的线索1.4 面向对象的软件开发过程面向对象的软件开发过程 1

11、.4.1 面向对象的分析面向对象的分析 任务:用户需求任务:用户需求 OOA模型的设计和表达方法(五个层次)模型的设计和表达方法(五个层次) 对象对象类层类层 现实世界到计算机世界(对象、类)的抽象现实世界到计算机世界(对象、类)的抽象 静态属性层静态属性层 设计对象的状态及各对象间的约束关系设计对象的状态及各对象间的约束关系 服务层(方法层)服务层(方法层) 定义对象和类的动态属性及对象之间的消息通信定义对象和类的动态属性及对象之间的消息通信 结构层结构层 定义系统中的所有对象和类之间的层次结构关系定义系统中的所有对象和类之间的层次结构关系 主题层主题层 划分子系统划分子系统 1.4.2 面

12、向对象的设计面向对象的设计 OOD模型划分为四个部分模型划分为四个部分 界面管理界面管理 负责整个系统的人负责整个系统的人-机界面设计机界面设计 任务管理任务管理 负责处理并行操作之类的系统资源管理功能的工作负责处理并行操作之类的系统资源管理功能的工作 数据管理数据管理 负责设计系统与数据库的接口负责设计系统与数据库的接口 分为四个部分的优点分为四个部分的优点 技术实现上的透明性技术实现上的透明性 可重用性大大提高可重用性大大提高 维护更容易维护更容易 问题逻辑部分的任务问题逻辑部分的任务 对最初的对最初的OOA模型进一步细化分析、设计和验证模型进一步细化分析、设计和验证 细化分析包括细化分析

13、包括 对类静态数据的确定对类静态数据的确定 对类方法的参数、返值、功能实现的明确规定对类方法的参数、返值、功能实现的明确规定 细化验证包括细化验证包括 各对象类公式间的相容性和一致性各对象类公式间的相容性和一致性 各个类间、类内成员的访问权限的严格合理性各个类间、类内成员的访问权限的严格合理性 对象类的功能是否符合用户需求对象类的功能是否符合用户需求 详细设计原则详细设计原则 充分利用已存在的,可获得的对象类或部件充分利用已存在的,可获得的对象类或部件 分析哪些类或哪些功能是可重用的,交专人优先开发分析哪些类或哪些功能是可重用的,交专人优先开发 大型项目设专人管理可重用资源,组成类库或其它可重

14、大型项目设专人管理可重用资源,组成类库或其它可重用结构,充分、合理地利用资源用结构,充分、合理地利用资源 1.4.3 面向对象的实现面向对象的实现编码阶段编码阶段 选择语言选择语言 用语言编码实现详细设计阶段所得公式、图表、用语言编码实现详细设计阶段所得公式、图表、说明和规划等对软件系统各对象类的详尽描述说明和规划等对软件系统各对象类的详尽描述 将类代码模块根据类的相互关系集成(层次)将类代码模块根据类的相互关系集成(层次) 按测试样例进行模块及系统测试,测试可与编按测试样例进行模块及系统测试,测试可与编码同步完成。码同步完成。 总之,软件开发阶段同于一般软件工程方法,总之,软件开发阶段同于一

15、般软件工程方法,各个阶段内部采用面向对象的分析、开发方法,各个阶段内部采用面向对象的分析、开发方法,注意面向对象与面向过程的分析、开发方法上注意面向对象与面向过程的分析、开发方法上的并用和区别。的并用和区别。1.5 面向对象程序设计的特点面向对象程序设计的特点 抽象抽象-简化描述、抽取共性简化描述、抽取共性 封装封装 所有对象内部软件范围具有清晰的边界所有对象内部软件范围具有清晰的边界 描述该对象与其它对象如何相互作用的接口描述该对象与其它对象如何相互作用的接口 受保护的内部实现受保护的内部实现 继承继承-层次关系、创建新类的一种方法层次关系、创建新类的一种方法 多态多态 不同对象对同一种信息

16、可以按照对象本身的性不同对象对同一种信息可以按照对象本身的性质加以回应质加以回应 动态联编动态联编-运行时真正锁定需要的对象运行时真正锁定需要的对象1.6 面向对象程序设计方法的优点面向对象程序设计方法的优点可重用性可重用性 面向对象软件开发的核心思路面向对象软件开发的核心思路可扩展性可扩展性(快速原型法)(快速原型法) 从简单起,不断补充、延伸从简单起,不断补充、延伸可管理性可管理性 由于封装,便于管理由于封装,便于管理1.7 第一章小结第一章小结 面向对象问题的提出和求解的基本过程面向对象问题的提出和求解的基本过程 基本概念基本概念 对象、类、实体及其相互关系对象、类、实体及其相互关系 对象的属性(状态和行为)对象的属性(状态和行为) 对象间的关系对象间的关系 包含:部分包含:部分-整体整体 继承:一般继承:一般-特殊特殊 关联:相关的一条线索关联:相关的一条线索 软件工程开发方法(软件工程开发方法(OOA-OOD-OOP) 面向对象程序设计的特点面向对象程序设计的特点(抽象、封装、继承、多态

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论