1 / 24

第一章 面向对象编程

面向对象技术与 C ++. 第一章 面向对象编程. 什么是对象技术. 基于对象概念的软件开发方法 对象包含有数据及处理数据的功能函数 在分析、设计和实现的整个过程中只使用一个概念对象的开发方法 能够解决软件危机中大多数问题的方法. 对象 = 数据 + 功能. 对象技术的优势. 稳定 : 数据和功能都打包在一起,从而改善软件的再重用性. 软件重用 能提高质量,减少由于编制新的系统代码而产生的成本. Spread sheet. Word Processor. Text Editor. Macro Editor. Math Utilities.

Download Presentation

第一章 面向对象编程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 面向对象技术与C++ 第一章面向对象编程

  2. 什么是对象技术 • 基于对象概念的软件开发方法 • 对象包含有数据及处理数据的功能函数 • 在分析、设计和实现的整个过程中只使用一个概念对象的开发方法 • 能够解决软件危机中大多数问题的方法 对象 = 数据 + 功能

  3. 对象技术的优势 • 稳定:数据和功能都打包在一起,从而改善软件的再重用性 • 软件重用能提高质量,减少由于编制新的系统代码而产生的成本 Spread sheet Word Processor TextEditor MacroEditor MathUtilities PrintUtilities FormatEditor Menus StringUtilities FileMgr Reusable-Component Repository

  4. 对象技术的优势 • 面向对象的模型更加贴切地反映了现实世界 • 更加准确地描述公共数据和过程 • 易于理解,尤其对于使用者 Computer External Drive Laser Printer 对象图 现实世界

  5. 对象技术的优势 • 面向对象的方法支持大规模开发 • 可以严格定义各个组件之间的交互 • 减少内部的依赖关系 • 减少集成的问题 • 支持并行开发

  6. 对象技术的优势 • 对系统的一部分进行再工程,保护前期软件应用的投资 Existing Software Reengineered Software

  7. 1.1 程序设计的不同编程风格 一、面向过程的结构化编程风格 程序由模块构成。 传统的程序设计方法其程序设计工作主要围绕设计解题过 程来进行,把程序看作是工作在数据上的一系列过程(函数)的 集合。程序的定律是: 程序=算法+数据结构 这种方法称为面向过程的程序设计,语言称为过程性语言。 C是面向过程的语言。 程序的目的:用于数学计算 • 主要工作:设计求解问题的过程

  8. 设计思路 • 自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。 • 程序结构: • 按功能划分为若干个基本模块,形成一个树状结构。 • 各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。 • 其模块化实现的具体方法是使用子程序。

  9. 例:制造汽车的任务 Main() Buildc(…) Builde(…) Buildd(…) Assemble(…) inspect(…)

  10. 优点: 有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。 直观、有条理。 • 缺点:可重用性差、数据安全性差、难以开发图形界面的应用 • 把数据和处理数据的过程分离为相互独立的实体。 • 当数据结构改变时,所有相关的处理过程都要进行相应的修改。 • 每一种相对于老问题的新方法都要带来额外的开销。 • 图形用户界面的应用,很难用过程来描述和实现,开发和维护都很困难。

  11. 二、面向对象(OOP)的编程风格 面向对象方法把程序看作是互相协作而又彼此独立的对象的集合。对象间通过发送消息而相互作用。 • 程序的定律是:对象=(算法+数据结构) • 程序=(对象+对象+……) • 面向对象的方法学可以用下列方程式概括: • OO=Objects+Classes+Inheritance+Communication With messages • 方法学是指一组启发式过程,以减少程序设计问题的复杂性。 面向对象方法具有下述4个要点:

  12. 面向对象的软件系统是由对象(Object)组成的;面向对象的软件系统是由对象(Object)组成的; • 把所有对象都划分成各种对象类(简称为类,Class), 每个对象类都定义了一组数据和方法; • 按照子类(派生类)与父类(基类)的关系,把若干个对象类组成一个层次结构的系统,这种现象称为继承(Inheritance); • 对象彼此之间仅能通过传递消息(message)互相联系。

  13. 面向对象 • 对象技术围绕对象的概念来建立 • 一个对象包含了数据和使用这些数据的所有功能 • 对象之间通过消息通信 • 一个对象通过向另一个对象发送消息激活某一 个功能

  14. 连接显示 什么是对象 • 一个对象代表了一个现实的或虚构的实体 • 自然实体 • 概念实体 • 软件实体 化学过程

  15. 在概念级上,对象是正被建模的系统中的实际的实体;在概念级上,对象是正被建模的系统中的实际的实体; • 从物理实现形式上,对象是封装了数据结构及可以是 • 在这些数据结构上的操作(方法)的封装体,这个封装体有可以唯一地标识它的名字,而且向外界提供一组服务(即公有操作)。 • 对象=特性(属性)+行为

  16. 对象 类 Simula-67是第一个OOP语言。 • 目的:解决模拟问题 • 例:银行出纳业务包括部门、顾客、业务、货币的单位等大量的“对象”。 • 由此提出“类”:在程序执行期间除了状态之外其他方面都一样的对象归在一起,构成对象的“类”。

  17. 班机 747 什么是类(Class)是OOP中构成模块的基本单元 • 类是一组具有相同结构和行为的对象的集合 • 共同的结构通过属性表现出来 (i.e. 数据) • 共同的行为通过操作表现出来 (i.e. 功能) 结构 班机号 日期 分配的班机 起点 终点 状态 行为 装载设备 起飞 延迟 取消 终止

  18. 类的示例 Class Employee Structure Name Address Position Salary Start Date End Date Behavior Hire Fire Promote Increase Salary Retire

  19. Flight 187 Flight 747 Flight 121 类是生成对象的模板 • 类是生成对象的模板 • 类的定义中包含有产生和删除对象的操作,属性显示在操作上方,操作的名字后跟有() • 一个类定义了使用哪种数据表示法来描述属性 • 每一个实例都采用有属性值的数据表示法 • 一个类通过一系列操作来定义行为 • 这种操作能在每个实例中激活 班机

  20. 类和对象的关系 • 每一个对象都是某一个类的实例 • 每一个类在某一时刻都有零个或更多的实例 • 类是静态的; 它们的存在、语义和关系在程 序执行前就已经定义好了 • 对象是动态的; 它们在程序执行时可以被 建和删除

  21. variables methods 类是可以实例化的抽象数据类型。 类定义的变量就是属于类的对象,即对象是类的实例化。 Varible(field), procerdure(method,constructor) 程序中的对象是类的 一个实例,是一个软件 单元,它由一组结构化 的数据和在其上的一组 操作构成。

  22. 消息(message):消息是向对象发出的服务请求 在语法上,一条消息应包括 消息名、入口参数和返回参数; 在语义上,一条消息应包括 发送者、接收者和其它需传送的信息。 • 例: Circle MyCircle; • MyCircle.Show(GREEN); • //实例MyCircle以绿色显示自己。 目前在大部分面向对象的编程语言中,消息其实就是函数(或过程)调用。 但是,函数调用只是实现消息的方式之一,上述理解只适合于顺序系统

  23. 设计思路 以类的设计为基础,通过类的设计来完成对实体的建模。 • 优点: • 程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。 • 通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。

  24. 关系的重要性 • 所有的系统都包含了大量的类和对象 • 对象通过与其它对象的协作完成系统的功能行为 • 协作通过关系来实现 • 几种重要的关系类型: • has a • is a • belongs to

More Related