C面向对象程序设计谭浩强第二章.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C面向对象程序设计谭浩强第二章.ppt》由会员分享,可在线阅读,更多相关《C面向对象程序设计谭浩强第二章.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+ 2- 1 第一第一章章 C+的初步知识的初步知识第二章第二章 类和对象类和对象第三章 再论类和对象第四章 运算符重载第五章 继承与派生第六章 多态性与虚函数第七章 输入输出流第八章 C+工具C+ 2- 2 2.1 面向对象程序设计方法概述面向对象程序设计方法概述2.2 类的声明和对象的定义类的声明和对象的定义2.3 类的成员函数类的成员函数2.4 对象成员的引用对象成员的引用2.5 类和对象的举例类和对象的举例2.6 类的封装和信息的隐藏类的封装和信息的隐藏C+ 2- 3 2.1 面向对象程序设计方法概述面向对象程序设计方法概述l什么是面向对象的程序设计什么是面向对象的程序设计?面向对象
2、的程序设计面向对象的程序设计(Object-Oriented Programming )和传和传统的结构化程序设计的思路完全不同。面向对象的程序设计和统的结构化程序设计的思路完全不同。面向对象的程序设计和人们日常生活解决问题的思路是相似的。人们日常生活解决问题的思路是相似的。比如,我们生产汽车时,不是顺序制造发动机,在设计比如,我们生产汽车时,不是顺序制造发动机,在设计制造底盘、车身、轮子。而是分别设计制造发动机、底盘、车制造底盘、车身、轮子。而是分别设计制造发动机、底盘、车身和轮子,最后组装在一起。组装时,各部件之间有联系,以身和轮子,最后组装在一起。组装时,各部件之间有联系,以便协调工作。
3、例如,司机踩油门,就能调节油路,控制发动机便协调工作。例如,司机踩油门,就能调节油路,控制发动机的转速,就能驱动车轮。的转速,就能驱动车轮。C+ 2- 4 2.1 面向对象程序设计方法概述面向对象程序设计方法概述程序设计者的任务有两个:一是设计所需要的类和对象,程序设计者的任务有两个:一是设计所需要的类和对象,即确定那些数据和操作封装在一起;二是考虑怎样向有关对象即确定那些数据和操作封装在一起;二是考虑怎样向有关对象发送消息,以启动相关对象的操作。发送消息,以启动相关对象的操作。编程者如同一个总调度,不断地向各个对象发出命令,编程者如同一个总调度,不断地向各个对象发出命令,让这些对象活动起来,
4、完成指定的工作。让这些对象活动起来,完成指定的工作。这就是面向对象的程序设计的基本思路。这就是面向对象的程序设计的基本思路。C+ 2- 5 2.1 面向对象程序设计方法概述面向对象程序设计方法概述l什么是对象什么是对象(object)?一个对象由一组一个对象由一组“属性属性”和一组和一组“行为行为”构成。并根据构成。并根据外界给它的消息进行相应的操作。系统中多个对象通过一定的外界给它的消息进行相应的操作。系统中多个对象通过一定的渠道相互联系。渠道相互联系。任何事物都可以看成一个对象。可以是自然物体,也可任何事物都可以看成一个对象。可以是自然物体,也可以是逻辑结构。我们以一个班级为例。一个班级作
5、为对象,有以是逻辑结构。我们以一个班级为例。一个班级作为对象,有两个要素:一是班级的静态特征,如班级所属的专业,学生人两个要素:一是班级的静态特征,如班级所属的专业,学生人数、班主任姓名等,这种静态特征称为数、班主任姓名等,这种静态特征称为“属性属性”;另一个是班;另一个是班级的动态特征,如上课,体育比赛,开会等,称为级的动态特征,如上课,体育比赛,开会等,称为“行为行为”。外界向班级发一个信息(如上课铃声,广播通知),我们称之外界向班级发一个信息(如上课铃声,广播通知),我们称之为为“消息消息”,班级就会发生一个操作(要么上课,要么开会),班级就会发生一个操作(要么上课,要么开会)C+ 2-
6、 6 2.1 面向对象程序设计方法概述面向对象程序设计方法概述l什么是什么是C+对象?对象?C+中,每个对象都由若干数据和若干函数组成。数据中,每个对象都由若干数据和若干函数组成。数据就是对象的就是对象的“属性属性”,函数就是用来对数据进行的,函数就是用来对数据进行的“操作操作”,以便实现某种功能。这种操作就是对象的以便实现某种功能。这种操作就是对象的“行为行为”,也叫,也叫“方方法法”。我们点击一下鼠标,按动键盘的一个按钮,就是给某个。我们点击一下鼠标,按动键盘的一个按钮,就是给某个对象一个消息,系统会调用该对象中的函数进行操作。对象一个消息,系统会调用该对象中的函数进行操作。比如长方形对象
7、,其长和宽就是它的属性,调用该对象比如长方形对象,其长和宽就是它的属性,调用该对象的一些函数,即向该对象传送一些消息,可以用来对其长、宽的一些函数,即向该对象传送一些消息,可以用来对其长、宽值进行加工计算,以实现求出面积、周长等功能。值进行加工计算,以实现求出面积、周长等功能。C+ 2- 7 2.1 面向对象程序设计方法概述面向对象程序设计方法概述l什么是对象封装什么是对象封装(encapsulation )?就是把对象的不想让外界知道的属性和功能屏蔽起来,就是把对象的不想让外界知道的属性和功能屏蔽起来,让外界看不见。封装有两个含义,一是将有关的数据和操作函让外界看不见。封装有两个含义,一是将
8、有关的数据和操作函数封装成一个基本单位,即对象内。各对象之间相互独立,互数封装成一个基本单位,即对象内。各对象之间相互独立,互不干扰;二是将对象中的部分属性或功能对外隐蔽,只留少数不干扰;二是将对象中的部分属性或功能对外隐蔽,只留少数接口向外公布,以接收外界信息。接口向外公布,以接收外界信息。对象封装的好处在于,降低了人们操作对象的复杂程度。对象封装的好处在于,降低了人们操作对象的复杂程度。使用对象的人,不必知道对象内部的实现细节,只需要了解外使用对象的人,不必知道对象内部的实现细节,只需要了解外部功能就可以自如地操作该对象。部功能就可以自如地操作该对象。对象的行为由类的内部数据结构和相关的操
9、作确定;外对象的行为由类的内部数据结构和相关的操作确定;外部行为通过操作接口实现。人们关心的就是操作接口所能提供部行为通过操作接口实现。人们关心的就是操作接口所能提供的服务。的服务。C+ 2- 8 2.1 面向对象程序设计方法概述面向对象程序设计方法概述l什么是抽象什么是抽象(abstraction)?将具有相同特性的事物归纳、集中成一个统一类型,将具有相同特性的事物归纳、集中成一个统一类型,称为抽象。比如,把张三,李四,王五归纳为一类,我们称称为抽象。比如,把张三,李四,王五归纳为一类,我们称之为之为“人人”。抽象的作用,是表示同类事物的本质。如果你会操作抽象的作用,是表示同类事物的本质。如
10、果你会操作自己家的电视机,看到别人家里的电视机即使牌子不同,你自己家的电视机,看到别人家里的电视机即使牌子不同,你也肯定会操作,因为所有电视机具有共同的特性。也肯定会操作,因为所有电视机具有共同的特性。C和和C+中,数据类型就是对一批具体数据的抽象,整中,数据类型就是对一批具体数据的抽象,整形数据就是所有整数的抽象。形数据就是所有整数的抽象。“类类”是是“对象对象”的抽象,的抽象,“对象对象”则是类的则是类的“特特例例”,或,或“具体表现形式具体表现形式”。C+ 2- 9 2.1 面向对象程序设计方法概述面向对象程序设计方法概述l什么是继承什么是继承( inherit )?生产汽车,一般不会从
11、头开始设计,而是选择已有的某生产汽车,一般不会从头开始设计,而是选择已有的某一型号汽车为蓝本,增加、修改一些功能就行了。一型号汽车为蓝本,增加、修改一些功能就行了。软件开发也是这样,我们已经有了一个名为软件开发也是这样,我们已经有了一个名为“A”的类,的类,还想建立一个名为还想建立一个名为“B”的类,而后者内容只是在前者的基础的类,而后者内容只是在前者的基础上增加了少量内容。我们显然不必重新设计一个新类上增加了少量内容。我们显然不必重新设计一个新类B,只需,只需要把要把A类拿过来,在此基础上添加新内容就可以了。这就是面类拿过来,在此基础上添加新内容就可以了。这就是面向对象程序设计的向对象程序设
12、计的继承机制继承机制。C+提供继承机制,大大节省了编程工作量,这就是所提供继承机制,大大节省了编程工作量,这就是所谓谓“软件重用软件重用( software reusability )”的思想。对于大型软的思想。对于大型软件的开发具有重要意义。件的开发具有重要意义。C+ 2- 10 2.1 面向对象程序设计方法概述面向对象程序设计方法概述l什么是多态性什么是多态性( polymorphism )?如果有几个相似而不同的对象,人们往往要求在向它们如果有几个相似而不同的对象,人们往往要求在向它们发出同一个消息时,各自作出不同的操作,这种情况就是发出同一个消息时,各自作出不同的操作,这种情况就是“多
13、多态现象态现象”。比如,高二比如,高二1,2,3班,听到上课铃后,作出的动作是班,听到上课铃后,作出的动作是各自走进自己的教室上课,而不会走错教室。各自走进自己的教室上课,而不会走错教室。C+中,所谓多态性是指,由继承而产生的相关的不同中,所谓多态性是指,由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应。的类,其对象对同一消息会作出不同的响应。显然,多态性能增加程序的灵活性,它是面向对象程序显然,多态性能增加程序的灵活性,它是面向对象程序设计的重要特征。设计的重要特征。C+ 2- 11 填空题填空题 面向对象的系统最突出的特性是面向对象的系统最突出的特性是 、 、 。1.C+语言
14、是一种计算机编程语言,利用它编写的程序并不能语言是一种计算机编程语言,利用它编写的程序并不能直接在计算机上运行,而是要经过直接在计算机上运行,而是要经过 、 和和 生生成可执行文件。成可执行文件。C+ 2- 12 C+ 2- 13 2.1 面向对象程序设计方法概述面向对象程序设计方法概述l类与对象的作用类与对象的作用C+全面支持传统的面向过程的程序设计(即结构化编全面支持传统的面向过程的程序设计(即结构化编程),也支持基于对象和面向对象的程序设计。程),也支持基于对象和面向对象的程序设计。所谓基于对象,是指程序是以类和对象为基础,程序的操所谓基于对象,是指程序是以类和对象为基础,程序的操作是围
15、绕对象进行的。作是围绕对象进行的。所谓面向对象,是指,在基于对象的基础上,利用了继承所谓面向对象,是指,在基于对象的基础上,利用了继承机制和多态性。机制和多态性。l面向对象的程序设计特点面向对象的程序设计特点:类具有对数据的抽象性、封装性、继承性、多态性。类具有对数据的抽象性、封装性、继承性、多态性。C+ 2- 14 2.2 类的声明和对象的定义类的声明和对象的定义l类和对象的关系类和对象的关系每一个实体都可以作为对象,一些对象具有相同的结构每一个实体都可以作为对象,一些对象具有相同的结构和特性。如高一和特性。如高一1班,班,2班,班,3班。他们是不同的对象,但具有班。他们是不同的对象,但具有
16、完全相同的结构的特性。每个对象都属于一个特定的类型。完全相同的结构的特性。每个对象都属于一个特定的类型。C+中,对象的类型称为类中,对象的类型称为类( class )。类代表了某一批对。类代表了某一批对象的共同特性。前面已经谈到,类是对象的抽象,而对象是类象的共同特性。前面已经谈到,类是对象的抽象,而对象是类的具体实例的具体实例( instance )。就象结构体类型和结构体变量一样。就象结构体类型和结构体变量一样。C+中,我们先声明一个类的类型,然后再定义该类的若中,我们先声明一个类的类型,然后再定义该类的若干对象。对象就是类这种类型的一个变量。类是抽象的,不占干对象。对象就是类这种类型的一
17、个变量。类是抽象的,不占内存,而对象是具体的,要占用内存空间。内存,而对象是具体的,要占用内存空间。C+ 2- 15 2.2 类的声明和对象的定义类的声明和对象的定义l类的声明类的声明类的声明方法和结构体的声明方法一样,只是将关键字类的声明方法和结构体的声明方法一样,只是将关键字struct 换成换成class:class 类名类名 private:私有数据成员和私有成员函数;私有数据成员和私有成员函数; public:公共数据成员和公共成员函数;公共数据成员和公共成员函数;成员访问限定符成员访问限定符( member access specifier )成员访问限定符成员访问限定符( mem
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 谭浩强 第二
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内