面向对象程序设计教程(C++语言描述课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《面向对象程序设计教程(C++语言描述课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 教程 C+ 语言 描述 课件
- 资源描述:
-
1、第第1章章 面向对象程序设计概论面向对象程序设计概论面向对象程序设计教程(面向对象程序设计教程(C+语言描述)上语言描述)上第第1章章 面向对象程序设计概论面向对象程序设计概论第第1章章 面向对象程序设计概论面向对象程序设计概论1.1 程序设计方法程序设计方法1.2 面向对象程序设计的基本概念面向对象程序设计的基本概念1.3 面向对象程序设计语言面向对象程序设计语言1.4 C+C+对面向对象程序设计方法的支持对面向对象程序设计方法的支持1.5 C+C+程序的实现程序的实现 第第1章章 面向对象程序设计概论面向对象程序设计概论1.1 程序设计方法程序设计方法1.1.1 结构化程序设计方法结构化程
2、序设计方法1.1.2 面向对象的程序设计方法面向对象的程序设计方法返回首页返回首页目前有两种重要的程序设计方法:目前有两种重要的程序设计方法:第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.1 结构化程序设计方法 结构化程序设计的概念由瑞士计算机科学结构化程序设计的概念由瑞士计算机科学家家19711971年首次提出来,随之出现了支持结构化年首次提出来,随之出现了支持结构化程序设计方法的程序设计语言,例如程序设计方法的程序设计语言,例如C C语言。语言。结构化程序设计方法:结构化程序设计方法:强调程序结构的规范性,强调程序设计的强调程序结构的规范性,强调程序设计的自顶向下,逐步求精的
3、演化过程。在这种方法自顶向下,逐步求精的演化过程。在这种方法中,待解问题和程序设计语言中的过程紧密相中,待解问题和程序设计语言中的过程紧密相联。联。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.1 结构化程序设计方法 例如要开发一个成绩管理系统,由于问题较复例如要开发一个成绩管理系统,由于问题较复杂,我们将待解的问题分解成若干子问题:杂,我们将待解的问题分解成若干子问题:n输入成绩输入成绩n处理成绩处理成绩n打印成绩打印成绩 待解问题将对应到待解问题将对应到main()main()函数,每个函数,每个子问题对应到子问题对应到main()main()的调用函数的调用函数 第第1章章
4、 面向对象程序设计概论面向对象程序设计概论1.1.1 1.1.1 结构化程序设计方法结构化程序设计方法返回本节返回本节 随着程序规模与复杂性的增长,面向过程随着程序规模与复杂性的增长,面向过程的结构化程序设计方法存在明显的不足之处:的结构化程序设计方法存在明显的不足之处:u数据安全性问题数据安全性问题u可维护性及可重用性差可维护性及可重用性差u图形用户界面的应用程序,很难用过程来描图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。述和实现,开发和维护也都很困难。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法在结构化程
5、序设计方法中,程序可表示为:在结构化程序设计方法中,程序可表示为:程序程序=数据结构数据结构+算法算法 即程序的要素是数据结构和算法,数据结即程序的要素是数据结构和算法,数据结构是指利用计算机的离散逻辑来量化表达需要构是指利用计算机的离散逻辑来量化表达需要解决的问题,而算法则研究如何高效而快捷地解决的问题,而算法则研究如何高效而快捷地组织解决问题的具体过程。组织解决问题的具体过程。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法【例【例1.1】用】用C+语言描述,用结构化程序设计方法计语言描述,用结构化程序设计方法计算矩形的面积。算矩形的
6、面积。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法 在面向对象的程序设计方法中,对象是在面向对象的程序设计方法中,对象是数据结构和算法的封装体。数据结构和算法的封装体。根据这个定义,对象是计算机内存中的根据这个定义,对象是计算机内存中的一块区域。在对象中,不但存有数据,而且一块区域。在对象中,不但存有数据,而且存有代码,使得每个对象在功能上相互之间存有代码,使得每个对象在功能上相互之间保持相对独立。当然,对象之间存在各种联保持相对独立。当然,对象之间存在各种联系,但它们之间只能通过消息进行通信。程系,但它们之间只能通过消息进行通信。程
7、序可表示为:序可表示为:程序程序=对象对象+消息消息第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法【例【例1.21.2】用】用C+C+语言描述,用面向对象程序设计语言描述,用面向对象程序设计方法计算矩形的面积。方法计算矩形的面积。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法 通过这个程序可以知道面向对象程序程序通过这个程序可以知道面向对象程序程序的基本结构。一般情况下,面向对象程序都是的基本结构。一般情况下,面向对象程序都是由三个部分来构成:类的声明、类的成员的实由三个部分来构
8、成:类的声明、类的成员的实现和主函数。现和主函数。可见,在面向对象程序设计中,它着重于可见,在面向对象程序设计中,它着重于类的设计。类正是面向对象语言的基本程序模类的设计。类正是面向对象语言的基本程序模块,通过类的设计,来完成实体的建模任务。块,通过类的设计,来完成实体的建模任务。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法 程序程序Li1_2Li1_2比程序比程序Li1_1Li1_1看起来要烦琐一些。看起来要烦琐一些。但是,如果以但是,如果以RectangleAreaRectangleArea类为基础,通过继类为基础,通过继承,可以
9、很方便地派生出长方体等新的几何体,承,可以很方便地派生出长方体等新的几何体,实现代码重用。实现代码重用。面向对象程序设计方法提供了软件重用、解面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。封装性、继承性和多态性等特点。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2 面向对象程序设计的基本概念面向对象程序设计的基本概念1.2.1 抽象抽象1.2.2 封装封装1.2.3 消息消息1.2.4 继承继承1.2.5 多态多态返回首页返回首页第第1章章 面向对象程序设计概论
10、面向对象程序设计概论1.2.1 抽象抽象 抽象就是忽略事物中与当前目标无关的非本抽象就是忽略事物中与当前目标无关的非本质特征,而强调与当前目标有关的本质特征,从质特征,而强调与当前目标有关的本质特征,从而找出事物的共性,并把具有共性的事物划为一而找出事物的共性,并把具有共性的事物划为一类,得到一个抽象的概念。类,得到一个抽象的概念。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.1 抽象抽象 面向对象方法中的抽象:指对具体问题面向对象方法中的抽象:指对具体问题(对象对象)进行概括,抽出一类对象的公共性质并加以描述进行概括,抽出一类对象的公共性质并加以描述的过程。的过程。它包括两个方
11、面:数据抽象和行为抽象(或它包括两个方面:数据抽象和行为抽象(或称功能抽象、代码抽象)。其中,数据抽象描述称功能抽象、代码抽象)。其中,数据抽象描述某类对象共有的属性或状态,行为抽象描述某类某类对象共有的属性或状态,行为抽象描述某类对象的共有的行为或功能特征。将这两方面抽象对象的共有的行为或功能特征。将这两方面抽象有机地结合,就形成了面向对象程序设计中的有机地结合,就形成了面向对象程序设计中的“对象对象”。还可以继续抽象:把众多相似的。还可以继续抽象:把众多相似的“对象对象”聚集起来,进一步抽象后就形成了聚集起来,进一步抽象后就形成了“类类”。第第1章章 面向对象程序设计概论面向对象程序设计概
12、论1.2.1 抽象抽象数据抽象:数据抽象:float length,width,Area;float length,width,Area;行为抽象:行为抽象:SetData(float L,float W);SetData(float L,float W);CompueteArea();CompueteArea();OutputArea();OutputArea();分析程序清单分析程序清单Li1_2Li1_2:如果不是计算矩形的如果不是计算矩形的面积,关注的特征可面积,关注的特征可能是颜色、大小等。能是颜色、大小等。由此可见,对于同一由此可见,对于同一个研究对象,由于所个研究对象,由于所研究
13、问题的侧重点不研究问题的侧重点不同,就可能产生不同同,就可能产生不同的抽象结果。的抽象结果。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.2 封装封装 在日常生活中,我们往往只想知道某件物品在日常生活中,我们往往只想知道某件物品的功能,而不关心它是怎么工作的。的功能,而不关心它是怎么工作的。对于程序设计亦是如此,当人们面对某段程对于程序设计亦是如此,当人们面对某段程序时,只关心它的执行结果,而不关心实现过程序时,只关心它的执行结果,而不关心实现过程以及过程中所用到的数据。封装恰好满足了这一以及过程中所用到的数据。封装恰好满足了这一需求。需求。第第1章章 面向对象程
14、序设计概论面向对象程序设计概论1.2.2 封装封装 面向对象方法中的封装:就是将抽象出来的面向对象方法中的封装:就是将抽象出来的对象的属性和行为结合成一个独立的单位,并尽对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。可能隐蔽对象的内部细节。封装有两个含义:一是把对象的全部属性和封装有两个含义:一是把对象的全部属性和行为结合在一起,形成一个不可分割的独立单位。行为结合在一起,形成一个不可分割的独立单位。对象的私有属性只能由这个对象的行为来读取和对象的私有属性只能由这个对象的行为来读取和修改;二是尽可能隐蔽对象的内部细节,对外形修改;二是尽可能隐蔽对象的内部细节,对外形成一道屏
15、障,通过公有行为充当外部接口。成一道屏障,通过公有行为充当外部接口。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.2 封装封装 例如程序段例如程序段Li1_2Li1_2中的类中的类RectangleAreaRectangleArea就是就是在抽象的基础上,将矩形的数据和功能结合起来在抽象的基础上,将矩形的数据和功能结合起来而构成的封装体。而构成的封装体。声明的私有成员声明的私有成员lengthlength、widthwidth和和AreaArea外部无外部无法直接访问,外界可通过公有行为法直接访问,外界可通过公有行为SetData()SetData()、CompueteArea(
16、)CompueteArea()和和OutputArea()OutputArea()与类与类RectangleAreaRectangleArea发生联系。发生联系。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.3 消息消息 消息:是面向对象程序设计用来描述对象之消息:是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。个对象实施某种操作的一个请求。前面所提到的前面所提到的“接口接口”规定了能向某一对象发规定了能向某一对象发出什么请求。也就是说,类对每个可能的请求都出什么请求
17、。也就是说,类对每个可能的请求都定义了一个相关的函数,当向对象发出请求时,定义了一个相关的函数,当向对象发出请求时,就调用这个函数。这个过程通常概括为向对象就调用这个函数。这个过程通常概括为向对象“发发送消息送消息”(提出请求提出请求),对象根据这个消息决定做什,对象根据这个消息决定做什么么(执行函数代码执行函数代码)。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.3 消息消息例如,外界与例如,外界与RectangleAreaRectangleArea类进行通信,可以通类进行通信,可以通过下面的过下面的C+C+语句来描述:语句来描述:/创建一个创建一个RectangleRecta
18、ngle对象对象 RectangleArea Rectangle;/通过对象调用通过对象调用CompueterArea()CompueterArea()函数函数 Rectangle.CompueterArea();返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.4 继承继承 在客观世界中,存在着一般和特殊的关系,在客观世界中,存在着一般和特殊的关系,特殊具有一般的特性,同时又有自己的新特性。特殊具有一般的特性,同时又有自己的新特性。运用抽象的原则就是舍弃对象的特殊性,提运用抽象的原则就是舍弃对象的特殊性,提取其一般性,从而得到适合一个对象集的类。如取其一般性,从而得
19、到适合一个对象集的类。如果在这个类的基础上,再考虑抽象过程中被舍弃果在这个类的基础上,再考虑抽象过程中被舍弃的一部分对象的特性,则可形成一个新的类,这的一部分对象的特性,则可形成一个新的类,这个类具有前一个类的全部特征,又有自己的新特个类具有前一个类的全部特征,又有自己的新特征,形成一种层次结构,即继承结构。征,形成一种层次结构,即继承结构。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.4 继承继承 面向对象程序设计中利用继承机制将这种面向对象程序设计中利用继承机制将这种关系模型化。继承就是指特殊类的对象拥有其关系模型化。继承就是指特殊类的对象拥有其一般类的属性和行为。一般类的属
20、性和行为。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.4 继承继承 在软件开发过程中,继承进一步实现了软在软件开发过程中,继承进一步实现了软件模块的可重用性。继承意味着件模块的可重用性。继承意味着“自动地拥有自动地拥有”,即特殊类中不必重新定义已在一般类中定义过即特殊类中不必重新定义已在一般类中定义过的属性和行为,而是自动地、隐含地拥有其一的属性和行为,而是自动地、隐含地拥有其一般类的属性与行为。当这个特殊类又被它更下般类的属性与行为。当这个特殊类又被它更下层的特殊类继承时,它继承来的和自己定义的层的特殊类继承时,它继承来的和自己定义的属性和行为又被下一层的特殊类继承下去。不属
21、性和行为又被下一层的特殊类继承下去。不仅如此,如果将开发好的类作为构件放到构件仅如此,如果将开发好的类作为构件放到构件库中,在开发新系统时便可直接使用或继承使库中,在开发新系统时便可直接使用或继承使用。用。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.5 多态多态 面向对象的通信机制是消息,一个消息可以面向对象的通信机制是消息,一个消息可以产生不同的响应效果,这种现象叫做多态。即一产生不同的响应效果,这种现象叫做多态。即一个名字,多种语义;或相同界面,多种实现。个名字,多种语义;或相同界面,多种实现。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.5
22、多态多态 例如,如果发送消息例如,如果发送消息“双击双击”,不同的对象,不同的对象就会有不同的响应。比如,就会有不同的响应。比如,“文件夹文件夹”对象收到对象收到双击消息后,会打开该文件夹,而双击消息后,会打开该文件夹,而“音乐文件音乐文件”对象收到双击消息后,会播放该音乐。显然,对象收到双击消息后,会播放该音乐。显然,打开文件夹和播放音乐需要不同的函数体。但打开文件夹和播放音乐需要不同的函数体。但是,它们可以被同一条消息是,它们可以被同一条消息“双击双击”所引发。这所引发。这就是多态。就是多态。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.3 面向对象程序设计语言面
23、向对象程序设计语言1.3.1 混合型的面向对象程序设计语言混合型的面向对象程序设计语言C+1.3.2 纯面向对象程序设计语言纯面向对象程序设计语言Java返回首页返回首页第第1章章 面向对象程序设计概论面向对象程序设计概论1.3.1混合型的面向对象程序设计语言混合型的面向对象程序设计语言C+混合型程序设计语言兼有同时支持面向过混合型程序设计语言兼有同时支持面向过程的程序设计和支持面向对象的程序设计的特程的程序设计和支持面向对象的程序设计的特点,点,C+C+语言是这类语言的典型代表。语言是这类语言的典型代表。第第1章章 面向对象程序设计概论面向对象程序设计概论1.3.1混合型的面向对象程序设计语
24、言混合型的面向对象程序设计语言C+C+C+语言具有语言具有4 4个方面的优点:个方面的优点:u 降低程序开发和维护的成本。降低程序开发和维护的成本。u 与与C C兼容,但比用兼容,但比用C C语言编写的程序更有效率。语言编写的程序更有效率。u 允许程序员更自由地使用各种库。允许程序员更自由地使用各种库。u C+C+的异常处理机制能够保证在运行期间检查到的异常处理机制能够保证在运行期间检查到错误,并转至相应的处理程序,减少了代码的长度错误,并转至相应的处理程序,减少了代码的长度和复杂度。和复杂度。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.3.2 纯面向对象程序设计语
25、言纯面向对象程序设计语言Java Java Java是一种具有是一种具有“简单、面向对象的、分布简单、面向对象的、分布式、解释型、健壮、安全、与体系结构无关、式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行可移植、高性能、多线程和动态执行”等特性的等特性的语言。其次,它最大限度地利用了网络,语言。其次,它最大限度地利用了网络,JavaJava的应用程序的应用程序(Applet)(Applet)可在网络上传输,可以说可在网络上传输,可以说是网络世界的通用语言;另外,是网络世界的通用语言;另外,JavaJava还提供了还提供了丰富的类库,使程序设计者可以方便地建立自丰富的类
展开阅读全文