面向对象地设计思想.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象地设计思想

面向对象的设计思想 第二章 回顾 C++中的数据类型 引用类型 函数重载 函数参数默认值 C++中的动态内存分配 本章内容 程序设计思想 面向对象编程(OOP) 面向过程与面向对象的区别 OOP的特性 类的定义 类的访问控制 程序设计方法 传统的结构化程序设计 SP(Structured Programming) 面向对象的程序设计 OOP(Object Oriented Programming) 结构化程序设计2-1 传统的程序设计方法可以归结为“程序=算法+数据结构”,将程序定义为处理数据的一系列过程。这种设计方法的着眼点是面向过程的,特点是数据与程序分离,即数据与数据处理分离。 结构化程序设计的基本思想是采用自顶向下、逐步细化的设计方法和单入单出的控制结构。其理念是将大型程序分解成小型、便于管理的任务。如果其中的一项任务仍然过大,则将它分解为更小的任务。这一过程将一直持续下去,直到将程序划分为小型的,易于编写的模块。 结构化程序设计2-2 面向过程方法分析问题 结构化程序设计是面向过程(procedure-oriented)的 结构化程序设计的缺点 结构化程序设计为处理复杂问题提供了有力手段,但到80年代末,这种设计方法逐渐暴露出以下缺陷: 程序难以管理 数据修改存在问题 难以适应大型软件的设计 程序可重用性差 面向过程程序设计缺点的根源在于数据与数据处理分离 面向对象程序设计 面向对象(Object Oriented )是认识事务的一种方法,是一种以对象为中心的思维方式 面向对象的程序设计: 对象=(算法+数据结构) 程序=对象+对象+……+对象 面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作方法放在一起,形成一个相对独立的整体——对象(object),同类对象还可抽象出共性,形成类(class )。一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口。对象之间通过消息(message)进行通讯。 面向对象程序设计不像过程性编程那样,试图使问题满足语言的过程性方法,而是试图让语言来满足问题的要求。其理念是设计与问题的本质特性相对应的数据格式。 基本概念——对象 世界上所有的事物都可以称为对象(Object)。对象可以是有形的如:一台电视机等。也可以是无形的如:帐户、一项记录等。 一个对象就是一个独立存在的客观事物,它由一组属性和对属性进行操作的一组操作构成。 属性是对象静态特征的描述 操作是对象动态特征的描述 属性和操作是对象的两大要素。如电视的属性有:品牌、尺寸、重量等。操作有:收视、选台、音量调节等。 基本概念——类 是一个抽象的概念,用来描述某一类对象所共有的、本质的属性和类行为 根据抽象的原则对客观事物进行归纳和划分 类和对象的区别 如何区分类和对象——以“人”和“张三”为例 “人”描述了所有人(包括“张三” )都具有的属性和行为,如有姓名、身高、体重,有鼻子、眼睛、四肢,能交流、有思维等等 类(“人”)描述的概念是抽象的 “人”的姓名是什么? “人”的身高是什么? 对象(“张三”)是具体的 “张三”的姓名是“张三” “张三”的身高是185CM 类和对象的例子: 教室——五楼多媒体教室、四楼语音教室 国家——中国、美国 学校——福州大学、厦门大学 基本概念——消息 对象可以响应消息 我们把对象之间产生相互作用所传递的信息称做消息。 C++将“向对象发消息”处理成“调用对象的某个成员函数” 面向对象编程方法的特性 程序设计的重点在数据而不是函数 程序由对象组成,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 对象之间通过相互协作来完成功能 大多数对象的定义以数据为中心 函数与相关的数据紧密结合 数据可以被隐藏 很容易扩充新的数据和函数 面向对象编程的优缺点 面向对象编程的优点: 易维护:可读性高,即使改变需求,由于继承的存在,维护也只是在局部模块,维护起来是非常方便和较低成本的。 质量高:可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。 效率高:在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。 易扩展:由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。 面向对象编程的缺点: 运行效率会下降10%左右 面向对象的基本特征 抽象 封装和数据隐藏 继承 多态 抽象的设计思路 数据抽象化为属性 处理过程抽象化为操作(方法) 例如:当建立一个图书管理系统时,通过直觉知道系统里一定要有图书管理员/读者/书这些对象, 而其中读者的行为含有

文档评论(0)

jyf123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6153235235000003

1亿VIP精品文档

相关文档