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

下载本文档

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

文档简介

1、面向对象的程序设计面向对象的程序设计面向对象的程序设计面向对象的程序设计第 2 页本本 章章 要要 点点面向对象的程序设计面向对象的程序设计面向对象的程序设计面向对象的程序设计第 4 页1、回顾结构化方法l程序设计语言只要顺序、选择和重复三种程序设计语言只要顺序、选择和重复三种形式的控制结构就足以表达出各种其他形形式的控制结构就足以表达出各种其他形式的结构。式的结构。l采用过程抽象的方式,把软件视为处理流,采用过程抽象的方式,把软件视为处理流,并定义成由一系列步骤构成的算法。每一并定义成由一系列步骤构成的算法。每一步骤都是带有预定输入和特定输出的一个步骤都是带有预定输入和特定输出的一个过程,把

2、这些步骤串联在一起可产生合理过程,把这些步骤串联在一起可产生合理的稳定的贯通于整个程序的控制流,最终的稳定的贯通于整个程序的控制流,最终产生一个简单的具有静态结构的体系结构。产生一个简单的具有静态结构的体系结构。面向对象的程序设计面向对象的程序设计第 5 页1、回顾结构化方法l数据抽象、数据结构根据算法步骤的要求数据抽象、数据结构根据算法步骤的要求开发,它贯穿于过程,提供过程所要求操开发,它贯穿于过程,提供过程所要求操作的信息。作的信息。l系统的状态是一组全局变量,这组全局变系统的状态是一组全局变量,这组全局变量保存状态的值,把它们从一个过程传送量保存状态的值,把它们从一个过程传送到另一个过程

3、。到另一个过程。面向对象的程序设计面向对象的程序设计第 6 页1、回顾结构化方法l缺陷:缺陷:l1复用困难复用困难l2牵一发而动全身牵一发而动全身l3为了适应变化,要精心设计函数接口,为了适应变化,要精心设计函数接口,导致函数接口的日益复杂导致函数接口的日益复杂面向对象的程序设计面向对象的程序设计第 7 页2、面向对象方法的提出l面向对象方法把问题论域中的主要实体做面向对象方法把问题论域中的主要实体做为系统开发的起点,主要考虑对象的行为为系统开发的起点,主要考虑对象的行为而不是必须执行的一系列动作。而不是必须执行的一系列动作。l在面向对象方法中,对象是数据抽象与过在面向对象方法中,对象是数据抽

4、象与过程抽象的综合。程抽象的综合。l系统状态保存在各数据抽象所定义的数据系统状态保存在各数据抽象所定义的数据存储中。存储中。l控制流包含在各个数据抽象中的操作内,控制流包含在各个数据抽象中的操作内,算法被分布到各种实体中。算法被分布到各种实体中。面向对象的程序设计面向对象的程序设计第 8 页2、面向对象方法的提出l在使用面向对象方法开发的系统之中,系在使用面向对象方法开发的系统之中,系统结构基于对象间的交互。系统中某一部统结构基于对象间的交互。系统中某一部分的改变仅仅产生局部影响。分的改变仅仅产生局部影响。l其组成部分如下:其组成部分如下:l面向对象分析面向对象分析(OOA)l面向对象设计面向

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

6、的程序设计面向对象的程序设计第 10 页l人类对客观事物的认知过程人类对客观事物的认知过程l从一般到特殊的演绎过程从一般到特殊的演绎过程l从特殊到一般的归纳方法从特殊到一般的归纳方法3、面向对象方法的基本思想运输工具运输工具飞机飞机汽车汽车轮船轮船火车火车水果水果苹果苹果香蕉香蕉梨梨笼统笼统面向对象的程序设计面向对象的程序设计第 11 页3、面向对象方法的基本思想l面向对象方法提供了抽象和归纳的机制面向对象方法提供了抽象和归纳的机制抽象的客观概念抽象的客观概念概念:学生概念:学生抽象的数据类型抽象的数据类型类:学生类:学生实例化的对象实例化的对象对象:对象:Jane具体的一组相似客观事物具体的

7、一组相似客观事物实体:实体:Jane、Smith等等表示表示笼统笼统实例化实例化模拟模拟面向对象的程序设计面向对象的程序设计第 12 页3、面向对象方法的基本思想划分划分将复杂问题将复杂问题复杂对象复杂对象划分为一系划分为一系列简单的组列简单的组成部分简成部分简单对象)单对象) 分类分类按照对象间的各种相按照对象间的各种相似性将对象分类似性将对象分类认识各类对象自认识各类对象自身属性及行为身属性及行为认识对象及类之认识对象及类之间关系间关系全部事物的全部事物的完整认识完整认识符合人类认知规律的软件开发过程面向对象的程序设计面向对象的程序设计面向对象的程序设计面向对象的程序设计第 14 页1、什

8、么是对象?l在应用领域中有意义的、与所要解决的问在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和是人为的概念,或者是任何有明确边界和意义的东西。例如,一名职工、一家公司、意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷款一个窗口、一座图书馆、一本图书、贷款和借款等,都可以作为一个对象。和借款等,都可以作为一个对象。l总之,对象是对问题域中某个实体的抽象,总之,对象是对问题域中某个实体的抽象,设立某个对象就

9、反映了软件系统保存有关设立某个对象就反映了软件系统保存有关它的信息,并具有与它进行交互的能力。它的信息,并具有与它进行交互的能力。面向对象的程序设计面向对象的程序设计第 15 页1、什么是对象?l在不同场合具有不同的含义:在不同场合具有不同的含义:l问题空间:所有要研究的客观现实的全体问题空间:所有要研究的客观现实的全体称为问题空间或问题域,而把要研究的问称为问题空间或问题域,而把要研究的问题客观世界中的实体称之为问题空间题客观世界中的实体称之为问题空间的对象的对象 l解空间:所有的解程序及执行程序的计解空间:所有的解程序及执行程序的计算机组成的集合称为解空间,把解程算机组成的集合称为解空间,

10、把解程序及执行程序的计算机实体称做解空间序及执行程序的计算机实体称做解空间的对象的对象面向对象的程序设计面向对象的程序设计第 16 页1、什么是对象?问题空间对象问题空间对象图书1MyBook1 : CBook书 名:程序设计总页数:280版 本:2.m_pczName:char* =“程序设计”nTotalPage:int =280nEdition:int =2.返回书名返回总页数返回版本号.char* GetBookName();int GetTotalPage();int GetEdition();.分析中的对象设计中的对象面向对象的程序设计面向对象的程序设计第 17 页1、什么是对象?

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

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

13、olumeOthers变更频道请求开请求关调节音量被封装的行为和状态l类是具有相同数据结构和相同操作的一组类是具有相同数据结构和相同操作的一组相似对象的抽象。即表示某些对象在属性相似对象的抽象。即表示某些对象在属性和操作方面的共同特征。和操作方面的共同特征。l类是在对象之上的抽象,有了类以后,对类是在对象之上的抽象,有了类以后,对象则是类的具体化,是类的实例。象则是类的具体化,是类的实例。l把一组对象的共同特性加以抽象并存贮在把一组对象的共同特性加以抽象并存贮在一个类中的能力,是面向对象技术最重要一个类中的能力,是面向对象技术最重要的一点!的一点!面向对象的程序设计面向对象的程序设计第 20

14、页2、类的概念l类是建立对象时使用的类是建立对象时使用的“样板样板”,按照这,按照这个样板所建立的一个个具体的对象,就是个样板所建立的一个个具体的对象,就是类的实例。类的实例。l实例是某个具体类所描述的一个具体对象实例是某个具体类所描述的一个具体对象,如:,如:“张三张三”、“李四是类李四是类“中国人中国人的实例。的实例。l对象既可以是一个具体的对象,也可以泛对象既可以是一个具体的对象,也可以泛指一般的对象;而实例只能是一个具体的指一般的对象;而实例只能是一个具体的对象。对象。面向对象的程序设计面向对象的程序设计第 21 页3、实例的概念面向对象的程序设计面向对象的程序设计第 22 页类与实例

15、class furniturecosttexturelocationcolorMove()object chaircost $50texture woodlocation scantumcolor blackMove()面向对象的程序设计面向对象的程序设计第 23 页4、消息的概念l对象之间进行通讯的一种构造叫做消息。对象之间进行通讯的一种构造叫做消息。 l当一个消息发送给某个对象时,包含要求当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息。接收到接收对象去执行某些活动的信息。接收到消息的对象经过解释,然后予以响应。这消息的对象经过解释,然后予以响应。这种通讯机制叫做消息传递。

16、发送消息的对种通讯机制叫做消息传递。发送消息的对象不需要知道接收消息的对象如何对请求象不需要知道接收消息的对象如何对请求予以响应。予以响应。l通常一个消息由三部分组成:通常一个消息由三部分组成:l1接收消息的对象;接收消息的对象;面向对象的程序设计面向对象的程序设计第 24 页l2消息标识符即消息名)消息标识符即消息名)l3零个或多个变元零个或多个变元l访问一个方法的过程称为向这个对象发送访问一个方法的过程称为向这个对象发送一个消息一个消息message: sender,return value(s)4、消息的概念面向对象的程序设计面向对象的程序设计第 25 页5、面向对象的基本特征-封装性l

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

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

19、则类C继承类继承类A面向对象的程序设计面向对象的程序设计第 27 页5、面向对象的基本特征-继承性单继承多重继承设备输出设备I/O设备输入设备面向对象的程序设计面向对象的程序设计第 28 页5、面向对象的基本特征-继承性l继承使得相似的对象可以共享程序代码和继承使得相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余数据结构,从而大大减少了程序中的冗余信息,同时使得对软件的修改变得容易;信息,同时使得对软件的修改变得容易;l继承使得用户在开发新的应用系统时不必继承使得用户在开发新的应用系统时不必完全重新开始,可以继承原有的相似系统完全重新开始,可以继承原有的相似系统或从类库中选取需

20、要的类,在派生出新的或从类库中选取需要的类,在派生出新的类以实现所需要的功能;类以实现所需要的功能;l有了继承机制以后,还可以把已有的一般有了继承机制以后,还可以把已有的一般性的解加以具体化,来达到软件重用的目性的解加以具体化,来达到软件重用的目的。的。面向对象的程序设计面向对象的程序设计第 29 页5、面向对象的基本特征-多态性l面向对象的核心内容是对象,封装,承继面向对象的核心内容是对象,封装,承继,多态和消息机制,其中多态就是为了描,多态和消息机制,其中多态就是为了描述现实世界的多样性的,也是面向对象中述现实世界的多样性的,也是面向对象中最为重要的特性,可以这么说,不掌握多最为重要的特性

21、,可以这么说,不掌握多态,就没有真正地掌握面向对象技术。态,就没有真正地掌握面向对象技术。l简单的说,多态就是简单的说,多态就是“相同的表达式,不相同的表达式,不同的操作同的操作”,也可以说成是,也可以说成是“相同的命令相同的命令,不同的操作,不同的操作”面向对象的程序设计面向对象的程序设计第 30 页5、面向对象的基本特征-多态性员工员工程序员程序员业务员业务员文管文管每天上班时间一到,相当每天上班时间一到,相当于发了一条这样的命令:于发了一条这样的命令: “ “员工员工. .开始上班开始上班”( (同一条表达式同一条表达式) )l比如在公司中有各种职责不同的员工比如在公司中有各种职责不同的

22、员工(程程序员,业务员,文管等序员,业务员,文管等),他们,他们“上班上班时,做不同的事情时,做不同的事情(也可以看作是一种业也可以看作是一种业务逻辑务逻辑),我们把他们各自的工作都抽象,我们把他们各自的工作都抽象为为“上班上班”,关系如下:,关系如下: 面向对象的程序设计面向对象的程序设计第 31 页6、类与类之间的关系承继承继关联关联PersonHouseresidence 0.*owner0.*FinancialInstitutionclientcreditor0.*0.*Mortgageprincipalrateterm关联类关联类ordered0.*1BankTrustCompany

23、面向对象的程序设计面向对象的程序设计第 32 页6、类与类之间的关系l类图是由类及类与类之间的关系组成。我类图是由类及类与类之间的关系组成。我们定义了类以后,就必须识别、描述类与们定义了类以后,就必须识别、描述类与类间的关系。类间的关系。l通常,类与类之间的关系具有如下几种类通常,类与类之间的关系具有如下几种类型型l1关联关联l2聚合和组合聚合和组合l3泛化泛化面向对象的程序设计面向对象的程序设计面向对象的程序设计面向对象的程序设计第 34 页1、与人类习惯的思维方法一致l传统方法学传统方法学l以算法为核心以算法为核心l数据和过程相互独立数据和过程相互独立l解空间与问题空间不一致,难于理解解空

24、间与问题空间不一致,难于理解l面向对象方法学面向对象方法学l以对象为核心以对象为核心l数据静态属性和过程动态行为封数据静态属性和过程动态行为封装在一起装在一起l解空间模拟客观世界解空间模拟客观世界面向对象的程序设计面向对象的程序设计第 35 页2、稳定性好l传统方法学传统方法学l开发过程基于功能分析和功能分解开发过程基于功能分析和功能分解l软件结构依赖于系统所要完成的功能,功软件结构依赖于系统所要完成的功能,功能需求发生变化时引起软件结构的整体修能需求发生变化时引起软件结构的整体修改改l面向对象方法学面向对象方法学l基于构造问题领域的对象模型基于构造问题领域的对象模型l功能需求变化时仅需要做局部性的修改功能需求变化时仅需要做局部性的修改l由于现实世界中的实体是相对稳定的,以由于现实世界中的实体是相对稳定的,以对象为中心构造的软件系统也比较稳定对象为中心构造的软件系统也比较稳定面向对象的程序设计面向对象的程序设计第 36 页3

温馨提示

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

最新文档

评论

0/150

提交评论