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

下载本文档

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

文档简介

面向对象的程序设计第一讲面向对象的软件开发面向对象的程序设计第2

页第一讲面向对象的软件开发面向对象技术的发展历史面向对象技术的基础知识面向对象程序设计的优点本章要点面向对象的程序设计一、面向对象技术的发展历史面向对象的程序设计第5

页1、回顾结构化方法数据抽象、数据结构根据算法步骤的要求开发,它贯穿于过程,提供过程所要求操作的信息。系统的状态是一组全局变量,这组全局变量保存状态的值,把它们从一个过程传送到另一个过程。面向对象的程序设计第6

页1、回顾结构化方法缺点:1)复用困难2)牵一发而动全身3)为了适应变化,要精心设计函数接口,导致函数接口的日益复杂面向对象的程序设计第7

页2、面向对象方法的提出面向对象方法把问题论域中的主要实体做为系统开发的起点,主要考虑对象的行为而不是必须执行的一系列动作。在面向对象方法中,对象是数据抽象与过程抽象的综合。系统状态保存在各数据抽象所定义的数据存储中。控制流包含在各个数据抽象中的操作内,算法被分布到各种实体中。面向对象的程序设计第9

页3、面向对象方法的基本思想尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(即问题域)与实现解法的解空间(即求解域)在结构上尽可能一致。天下乌鸦一般黑归纳演绎面向对象的程序设计第10

页人类对客观事物的认知过程从一般到特殊的演绎过程从特殊到一般的归纳方法3、面向对象方法的基本思想运输工具飞机汽车轮船火车……水果苹果香蕉梨……抽象面向对象的程序设计第11

页3、面向对象方法的基本思想面向对象方法提供了抽象和归纳的机制抽象的客观概念概念:学生抽象的数据类型类:学生实例化的对象对象:Jane具体的一组相似客观事物实体:Jane、Smith等表示抽象实例化模拟面向对象的程序设计二、面向对象技术的基础知识面向对象的程序设计第14

页1、什么是对象?在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷款和借款等,都可以作为一个对象。总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件系统保存有关它的信息,并具有与它进行交互的能力。面向对象的程序设计第15

页1、什么是对象?在不同场合具有不同的含义:问题空间:所有要研究的客观现实的全体称为问题空间或问题域,而把要研究的问题(客观世界中的实体)称之为问题空间的对象解空间:所有的解(程序及执行程序的计算机)组成的集合称为解空间,把解(程序及执行程序的计算机实体)称做解空间的对象面向对象的程序设计第17

页1、什么是对象?对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以唯一标识它的名字,而且向外界提供一组服务。属性(attribute)表示对象的性质,属性值规定了对象所有可能的状态,一般只能通过执行对象的操作来改变。面向对象的程序设计第18

页1、什么是对象?操作是指该对象可以展现的外部服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。例如,大型客机可视为对象,它具有位置、速度、颜色、容量等属性,对于该对象可施行起飞、降落、加速、维修等操作,这些操作将或多或少地改变飞机的属性值(状态)。面向对象的程序设计第19

页1、什么是对象?对象:电视机Others...InternalStateTurnOnTurnOffChangeChannelAdjustVolumeOthers变更频道请求开请求关调节音量被封装的行为和状态类是建立对象时使用的“样板”,按照这个样板所建立的一个个具体的对象,就是类的实例。实例是某个具体类所描述的一个具体对象,如:“张三”、“李四”是类“中国人”的实例。对象既可以是一个具体的对象,也可以泛指一般的对象;而实例只能是一个具体的对象。面向对象的程序设计第21

页3、实例的概念面向对象的程序设计第22

页类与实例classclassfurniturecosttexturelocationcolorMove()objectchaircost$50texturewoodlocationscantumcolorblackMove()objectattributeabstract面向对象的程序设计第23

页4、消息的概念对象之间进行通讯的一种构造叫做消息。当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息。接收到消息的对象经过解释,然后予以响应。这种通讯机制叫做消息传递。发送消息的对象不需要知道接收消息的对象如何对请求予以响应。通常一个消息由三部分组成:1)接收消息的对象;面向对象的程序设计第25

页5、面向对象的基本特征-封装性在面向对象的程序中,把数据和实现操作的代码集中起来放在对象内部。一个对象好像是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码与局部数据都被封装在黑盒子里面,从外面是看不见的,更不能从外面直接访问和修改这些数据和代码。使用对象的时候只需要知道他向外界提供的接口的形式,无须知道它的数据结构细节和实现操作的算法。面向对象的程序设计第26

页5、面向对象的基本特征-继承性广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象技术中,继承是子类自动地共享基类中定义的数据和方法的机制。继承性是面向对象程序设计语言不同于其他语言的最主要的特点!继承具有传递性,如果类C继承类B,类B继承类A,则类C继承类A面向对象的程序设计第29

页5、面向对象的基本特征-多态性面向对象的核心内容是对象,封装,继承,多态和消息机制,其中多态就是为了描述现实世界的多样性的,也是面向对象中最为重要的特性,可以这么说,不掌握多态,就没有真正地掌握面向对象技术。简单的说,多态就是“相同的表达式,不同的操作”,也可以说成是“相同的命令,不同的操作”面向对象的程序设计第30

页5、面向对象的基本特征-多态性员工程序员业务员文管每天上班时间一到,相当于发了一条这样的命令:

“员工.开始上班”(同一条表达式)比如在公司中有各种职责不同的员工(程序员,业务员,文管等),他们“上班”时,做不同的事情(也可以看作是一种业务逻辑),我们把他们各自的工作都抽象为“上班”,关系如下:面向对象的程序设计第31

页6、类与类之间的关系继承关联PersonHouseresidence0..*owner0..*Financial

Institutionclientcreditor0..*0..*Mortgageprincipalrateterm关联类{ordered}0..*1BankTrust

Company面向对象的程序设计第32

页6、类与类之间的关系类图是由类及类与类之间的关系组成。我们定义了类以后,就必须识别、描述类与类间的关系。通常,类与类之间的关系具有如下几种类型1)关联2)聚合和组合3)泛化面向对象的程序设计三、面向对象程序设计方法的优点面向对象的程序设计第34

页1、与人类习惯的思维方法一致传统方法学以算法为核心数据和过程相互独立解空间与问题空间不一致,难于理解面向对象方法学以对象为核心数据(静态属性)和过程(动态行为)封装在一起解空间模拟客观世界面向对象的程序设计第35

页2、稳定性好传统方法学开发过程基于功能分析和功能分解软件结构依赖于系统所要完成的功能,功能需求发生变化时引起软件结构的整体修改面向对象方法学基于构造问题领域的对象模型功能需求变化时仅需要做局部性的修改由于现实世界中的实体是相对稳定的,以对象为中心构造的软件系统也比较稳定面向对象的程序设计第36

页3、可重用性好传统方法学利用标准函数库实现软件重用标准函数缺乏必要的“柔性”,并不是理想的可重用的软件成分面向对象方法学利用继承机制实现重用对象固有的封装性和信息隐藏机制,具有较强的独立性,是比较理想的可重用的软件成分面向对象的程序设计第37

页4、可扩展性好适合于在快速原型的软件开发方法中使用对模块化技术更有效的支持面向对象的程序设计第38

页5、较易开发大型软件产品每个对象就像一个微型程序,具有自己的数据、操作、功能和用途把大型软件产品分解成为一系列本质上相互独立的小产品来处理,降低开发难度,易于管理面向对象的程序设计第39

页6、可维护性好

温馨提示

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

最新文档

评论

0/150

提交评论