第01讲_面向对象的软件开发_第1页
第01讲_面向对象的软件开发_第2页
第01讲_面向对象的软件开发_第3页
第01讲_面向对象的软件开发_第4页
第01讲_面向对象的软件开发_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

面向对象的程序设计 第一讲面向对象的软件开发 面向对象的程序设计 第2页 第一讲面向对象的软件开发 面向对象技术发展历史面向对象技术基础知识面向对象程序设计的优点 本章要点 面向对象的程序设计 一 面向对象技术发展历史 面向对象的程序设计 第4页 1 结构化程序设计方法 程序设计语言只要顺序 选择和重复三种形式的控制结构就足以表达出各种其他形式的结构 采用过程抽象的方式 把软件视为处理流 并定义成由一系列步骤构成的算法 每一步骤都是带有预定输入和特定输出的一个过程 把这些步骤串联在一起可产生合理的稳定的贯通于整个程序的控制流 最终产生一个简单的具有静态结构的体系结构 面向对象的程序设计 第5页 1 结构化程序设计方法 缺点 1 复用困难2 牵一发而动全身3 为了适应变化 要精心设计函数接口 导致函数接口的日益复杂 面向对象的程序设计 第6页 2 面向对象方法的提出 面向对象方法把问题论域中的主要实体做为系统开发的起点 主要考虑对象的行为而不是必须执行的一系列动作 在面向对象方法中 对象是数据抽象与过程抽象的综合 系统状态保存在各数据抽象所定义的数据存储中 控制流包含在各个数据抽象中的操作内 算法被分布到各种实体中 在使用面向对象方法开发的系统之中 系统结构基于对象间的交互 系统中某一部分的改变仅仅产生局部影响 尽可能模拟人类习惯的思维方式 使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程 也就是使描述问题的问题空间 即问题域 与实现解法的解空间 即求解域 在结构上尽可能一致 面向对象的程序设计 第7页 3 面向对象方法的基本思想 从一般到特殊的演绎过程从特殊到一般的归纳方法 面向对象的程序设计 第8页 3 面向对象方法的基本思想 面向对象方法提供了抽象和归纳的机制 面向对象的程序设计 第9页 3 面向对象方法的基本思想 面向对象的程序设计 第10页 3 面向对象方法的基本思想 符合人类认知规律的软件开发过程 面向对象的程序设计 二 面向对象技术基础知识 面向对象的程序设计 第12页 1 什么是对象 在应用领域中有意义的 与所要解决的问题有关系的任何事物都可以作为对象 它既可以是具体的物理实体的抽象 也可以是人为的概念 或者是任何有明确边界和意义的东西 例如 一名职工 一家公司 一个窗口 一座图书馆 一本图书 贷款和借款等 都可以作为一个对象 总之 对象是对问题域中某个实体的抽象 设立某个对象就反映了软件系统保存有关它的信息 并具有与它进行交互的能力 面向对象的程序设计 第13页 1 什么是对象 在不同场合具有不同的含义 问题空间 所有要研究的客观现实的全体称为问题空间或问题域 而把要研究的问题 客观世界中的实体 称之为问题空间的对象解空间 所有的解 程序及执行程序的计算机 组成的集合称为解空间 把解 程序及执行程序的计算机实体 称做解空间的对象 面向对象的程序设计 第14页 1 什么是对象 问题空间对象 面向对象的程序设计 第15页 1 什么是对象 对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体 这个封装体有可以唯一标识它的名字 而且向外界提供一组服务 属性表示对象的性质 属性值规定了对象所有可能的状态 一般只能通过执行对象的操作来改变 操作是指该对象可以展现的外部服务 它描述了对象执行的功能 若通过消息传递 还可以为其它对象使用 面向对象的程序设计 第16页 1 什么是对象 对象 电视机 变更频道 请求开 请求关 调节音量 被封装的行为和状态 面向对象的程序设计 第17页 2 类的概念 类是具有相同数据结构和相同操作的一组相似对象的抽象 即表示某些对象在属性和操作方面的共同特征 类是在对象之上的抽象 有了类以后 对象则是类的具体化 是类的实例 把一组对象的共同特性加以抽象并存贮在一个类中的能力 是面向对象技术最重要的一点 面向对象的程序设计 第18页 3 实例的概念 类是建立对象时使用的 样板 按照这个样板所建立的一个个具体的对象 就是类的实例 实例是某个具体类所描述的一个具体对象 如 张三 李四 是类 中国人 的实例 对象既可以是一个具体的对象 也可以泛指一般的对象 而实例只能是一个具体的对象 面向对象的程序设计 第19页 类与实例 class object attributeabstract 面向对象的程序设计 第20页 4 消息的概念 对象之间进行通讯的一种构造叫做消息 当一个消息发送给某个对象时 包含要求接收对象去执行某些活动的信息 接收到消息的对象经过解释 然后予以响应 这种通讯机制叫做消息传递 发送消息的对象不需要知道接收消息的对象如何对请求予以响应 面向对象的程序设计 第21页 通常一个消息由三部分组成 1 接收消息的对象 2 消息标识符 即消息名 3 零个或多个变元 4 消息的概念 面向对象的程序设计 第22页 5 面向对象的基本特征 封装性 在面向对象的程序中 把数据和实现操作的代码集中起来放在对象内部 一个对象好像是一个不透明的黑盒子 表示对象状态的数据和实现操作的代码与局部数据都被封装在黑盒子里面 从外面是看不见的 更不能从外面直接访问和修改这些数据和代码 使用对象的时候只需要知道他向外界提供的接口的形式 无须知道它的数据结构细节和实现操作的算法 面向对象的程序设计 第23页 5 面向对象的基本特征 继承性 广义地说 继承是指能够直接获得已有的性质和特征 而不必重复定义它们 在面向对象技术中 继承是子类自动地共享基类中定义的数据和方法的机制 继承性是面向对象程序设计语言不同于其他语言的最主要的特点 继承具有传递性 如果类C继承类B 类B继承类A 则类C继承类A 面向对象的程序设计 第24页 5 面向对象的基本特征 继承性 面向对象的程序设计 第25页 5 面向对象的基本特征 继承性 继承使得相似的对象可以共享程序代码和数据结构 从而大大减少了程序中的冗余信息 同时使得对软件的修改变得容易 继承使得用户在开发新的应用系统时不必完全重新开始 可以继承原有的相似系统或从类库中选取需要的类 在派生出新的类以实现所需要的功能 有了继承机制以后 还可以把已有的一般性的解加以具体化 来达到软件重用的目的 面向对象的程序设计 第26页 5 面向对象的基本特征 多态性 面向对象的核心内容是对象 封装 继承 多态和消息机制 其中多态就是为了描述现实世界的多样性的 也是面向对象中最为重要的特性 可以这么说 不掌握多态 就没有真正地掌握面向对象技术 简单的说 多态就是 相同的表达式 不同的操作 也可以说成是 相同的命令 不同的操作 面向对象的程序设计 第27页 5 面向对象的基本特征 多态性 每天上班时间一到 相当于发了一条这样的命令 员工 开始上班 同一条表达式 比如在公司中有各种职责不同的员工 程序员 业务员 文管等 他们 上班 时 做不同的事情 也可以看作是一种业务逻辑 我们把他们各自的工作都抽象为 上班 关系如下 面向对象的程序设计 第28页 6 类与类之间的关系 继承 关联 Person House residence 0 关联类 ordered 面向对象的程序设计 第29页 6 类与类之间的关系 类图是由类及类与类之间的关系组成 我们定义了类以后 就必须识别 描述类与类间的关系 通常 类与类之间的关系具有如下几种类型1 关联2 聚合和组合3 泛化 面向对象的程序设计 三 面向对象程序设计方法的优点 面向对象的程序设计 第31页 1 与人类习惯的思维方法一致 传统方法学以算法为核心数据和过程相互独立解空间与问题空间不一致 难于理解面向对象方法学以对象为核心数据 静态属性 和过程 动态行为 封装在一起解空间模拟客观世界 面向对象的程序设计 第32页 2 稳定性好 传统方法学开发过程基于功能分析和功能分解软件结构依赖于系统所要完成的功能 功能需求发生变化时引起软件结构的整体修改面向对象方法学基于构造问题领域的对象模型功能需求变化时仅需要做局部性的修改由于现实世界中的实体是相对稳定的 以对象为中心构造的软件系统也比较稳定 面向对象的程序设计 第33页 3 可重用性好 传统方法学利用标准函数库实现软件重用标准函数缺乏必要的 柔性 并不是理想的可重用的软件成分面向对象方法学利用继承机制实现重用对象固有的封装性和信息隐藏机制 具有较强的独立性 是比较理想的可重用的软件成分 面向对象的程序设计 第34页 4 可扩展性好 适合于在快速原型的软件开发方法中使用对模块化技术更有效的支持 面向对象的程序设计 第35页 5 较易开发大型软件产品 每个对象就像一个微型程序 具有自己的数据 操作 功能和用途把大型软件产品分解成为一系列本质上相互独立的小产品来处理 降低开发难度 易于管理 面向对象的程序设计 第36页 6 可维护性好 面

温馨提示

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

评论

0/150

提交评论