第 5 章(1)━━类与对象.ppt
《第 5 章(1)━━类与对象.ppt》由会员分享,可在线阅读,更多相关《第 5 章(1)━━类与对象.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+程序设计程序设计第第5章章(1)类与对象类与对象1主要内容主要内容l面向过程的程序设计面向过程的程序设计l面向对象的程序设计面向对象的程序设计抽象性、封装性、继承性、多态性抽象性、封装性、继承性、多态性l类的概念类的概念l类的定义类的定义l对象的定义对象的定义l对象的使用对象的使用2面向过程的程序设计面向过程的程序设计l面向过程的结构化程序设计:面向过程的结构化程序设计:思想:思想:使用使用“自顶向下,逐步求精自顶向下,逐步求精”的方法,对功能进行分解,即将复杂的问题逐的方法,对功能进行分解,即将复杂的问题逐层分解,形成一个个功能模块,再逐一进行处理。层分解,形成一个个功能模块,再逐一进行
2、处理。方法:方法:一个函数实现一个功能。使用函数来实现对数据的操作,着重点放在一个函数实现一个功能。使用函数来实现对数据的操作,着重点放在“怎样怎样实现实现”的细节过程上,且往往把描述某一事物的数据与对数据进行操作的函数分开。的细节过程上,且往往把描述某一事物的数据与对数据进行操作的函数分开。形式:形式:主模块主模块+若干个功能模块若干个功能模块 (main()函数函数+若干个函数若干个函数)l缺点:缺点:当描述事物的数据结构发生变化时,处理这些数据的函数也随之重新设计或当描述事物的数据结构发生变化时,处理这些数据的函数也随之重新设计或修改,程序可重用性差,且修改函数往往会影响程序的其他部分,
3、导致牵一发而动修改,程序可重用性差,且修改函数往往会影响程序的其他部分,导致牵一发而动全身。维护性差成了制约结构化程序设计应用的全身。维护性差成了制约结构化程序设计应用的“瓶颈瓶颈”。对于较小规模的程序,。对于较小规模的程序,可用面向过程的方法,详细描述每一瞬间的数据结构以及对其的操作过程,而对于可用面向过程的方法,详细描述每一瞬间的数据结构以及对其的操作过程,而对于较大规模的程序,就显得力不从心了。较大规模的程序,就显得力不从心了。3面向对象的程序设计面向对象的程序设计l面向对象的程序设计:面向对象的程序设计:思想:思想:现实世界是由各种各样的对象组成,对象有其属性和行为,对象之间通过信息现
4、实世界是由各种各样的对象组成,对象有其属性和行为,对象之间通过信息传递相互作用。面向对象的程序设计就是用计算机逻辑来描述、模拟现实世界的存传递相互作用。面向对象的程序设计就是用计算机逻辑来描述、模拟现实世界的存在,并处理现实问题在,并处理现实问题。方法:方法:程序设计围绕对象进行,其核心是从现实问题中抽象出合适的对象,通过概括、程序设计围绕对象进行,其核心是从现实问题中抽象出合适的对象,通过概括、分类、抽象,将描述某一类对象的数据和处理这些数据的函数封装成一个整体,从分类、抽象,将描述某一类对象的数据和处理这些数据的函数封装成一个整体,从而构成一个类,而对象就是类的一个实例。而构成一个类,而对
5、象就是类的一个实例。特点:特点:抽象性、封装性、继承性、多态性抽象性、封装性、继承性、多态性实体实体抽象类别抽象类别抽象抽象客观世界客观世界主观世界主观世界现现实实世世界界映射映射对象对象类类抽象抽象计计算算机机世世界界实例化实例化4面向对象的程序设计面向对象的程序设计抽象性抽象性l抽象:抽象:是对具体的某一类对象(问题)进行概括,分析出这一类对象的公共性质并是对具体的某一类对象(问题)进行概括,分析出这一类对象的公共性质并加以描述的过程。抽象时先着重问题的本质及描述,其次才是实现的过程及细节。加以描述的过程。抽象时先着重问题的本质及描述,其次才是实现的过程及细节。l方法:方法:数据抽象:描述
6、某一类对象的属性或状态(对象之间相互区别的物理量)。数据抽象:描述某一类对象的属性或状态(对象之间相互区别的物理量)。代码抽象:描述某一类对象所共有的行为特征或具有的功能。代码抽象:描述某一类对象所共有的行为特征或具有的功能。l抽象的实现:抽象的实现:通过类的声明。通过类的声明。【例】【例】抽象实例抽象实例钟表钟表数据抽象:数据抽象:int hour;int minute;int second;代码抽象:代码抽象:settime();showtime();抽象抽象的实现的实现钟表钟表类类 class Clock private:int hour;int minute;int second;pu
7、blic:void settime(int h,int m,int s);void showtime();5面向对象的程序设计面向对象的程序设计封装性封装性l封装封装与信息隐蔽:与信息隐蔽:封装是将某一类对象的数据成员、代码成员(函数成员)结合在封装是将某一类对象的数据成员、代码成员(函数成员)结合在一起,形成一个基本单位。封装时,将其中的某些部分对外隐蔽,即隐蔽其内部细一起,形成一个基本单位。封装时,将其中的某些部分对外隐蔽,即隐蔽其内部细节,留下少量接口,以便与外界联系,接收外界消息,信息隐蔽有利于数据安全。节,留下少量接口,以便与外界联系,接收外界消息,信息隐蔽有利于数据安全。l目的:目
8、的:封装增强了数据的安全性,也简化了编程。类一旦建立,就可作为一个整体封装增强了数据的安全性,也简化了编程。类一旦建立,就可作为一个整体单元来使用,使用者不必了解具体的实现细节,只需要通过外部接口,以特定的访单元来使用,使用者不必了解具体的实现细节,只需要通过外部接口,以特定的访问权限,来使用类的成员。问权限,来使用类的成员。l封装的实现:封装的实现:在类声明中用一对大花括号在类声明中用一对大花括号“”将类中的数据成员、函数成员封装将类中的数据成员、函数成员封装成一个整体,并对其成员设置访问权限。成一个整体,并对其成员设置访问权限。【例】【例】封装封装钟表钟表类类 class Clock pr
9、ivate:int hour,minute,second;public:void settime(int h,int m,int s);void showtime();边界边界指定访问权限指定访问权限外部接口函数外部接口函数6面向对象的程序设计面向对象的程序设计继承性继承性l继承与派生:继承与派生:继承是继承是C+中支持层次分类的一种机制,使用者可以很方便的利用已有中支持层次分类的一种机制,使用者可以很方便的利用已有的类来建立一个新的类,即在保持原有类特性的基础上派生出新的类,并增加新的的类来建立一个新的类,即在保持原有类特性的基础上派生出新的类,并增加新的属性和行为。原有的类称为基类,由它派
10、生出来的新类称为子类或派生类,而子类属性和行为。原有的类称为基类,由它派生出来的新类称为子类或派生类,而子类还可以继续派生它的子类,如此下去,可以形成派生树(继承树)。还可以继续派生它的子类,如此下去,可以形成派生树(继承树)。l目的:目的:继承重用了已有软件中的有用部分,简化了编程,实现了继承重用了已有软件中的有用部分,简化了编程,实现了“软件重用软件重用”。l继承的实现:继承的实现:通过声明派生类。通过声明派生类。【例】【例】面包车类面包车类汽车类汽车类卡车类卡车类小汽车类小汽车类轿车类轿车类工具车类工具车类旅行车类旅行车类7面向对象的程序设计面向对象的程序设计多态性多态性l多态现象:多态
11、现象:当向几个相似但不完全相同的对象发送同一个消息时,它们反映各不相当向几个相似但不完全相同的对象发送同一个消息时,它们反映各不相同,分别执行不同的操作,即同样的一个消息被不同的对象接受时产生不同的结果,同,分别执行不同的操作,即同样的一个消息被不同的对象接受时产生不同的结果,这种情况就是多态现象。这种情况就是多态现象。l面向过程程序设计中的多态性:面向过程程序设计中的多态性:指用相同的函数名,定义多个相似但功能不同的函指用相同的函数名,定义多个相似但功能不同的函数,即通过重载函数的方式,实现数,即通过重载函数的方式,实现“同一名称,不同功能同一名称,不同功能”。l面向对象程序设计中的多态性:
12、面向对象程序设计中的多态性:指在具有继承关系的类体系中,由继承而产生的相指在具有继承关系的类体系中,由继承而产生的相关但不同的类,其对象对同一个消息会做出不同的响应,产生不同的结果,即通过关但不同的类,其对象对同一个消息会做出不同的响应,产生不同的结果,即通过继承和虚函数的方式,实现继承和虚函数的方式,实现“同一接口,多种方法同一接口,多种方法”。l目的:目的:增加程序的灵活性、通用性。增加程序的灵活性、通用性。l静态多态的实现:静态多态的实现:重载函数、重载运算符重载函数、重载运算符l动态多态的实现:动态多态的实现:继承继承+虚函数虚函数8类的概念类的概念l关于类:关于类:类是具有相同属性和
13、行为的某一类对象的抽象描述,其内部包括该类对象所共有的属类是具有相同属性和行为的某一类对象的抽象描述,其内部包括该类对象所共有的属性(数据)和行为(函数)。性(数据)和行为(函数)。类中定义的属性(数据)和行为(函数)称为类的成员,即类是由数据成员和函数成类中定义的属性(数据)和行为(函数)称为类的成员,即类是由数据成员和函数成员两个部分组成。员两个部分组成。类属于构造数据类型,它既包含描述事物的数据,又包含处理这些数据的函数。类属于构造数据类型,它既包含描述事物的数据,又包含处理这些数据的函数。类类型的变量称为对象,即类被作为样板来建立对象,对象是类的具体实例。类是抽类类型的变量称为对象,即
14、类被作为样板来建立对象,对象是类的具体实例。类是抽象的,对象是具体的。象的,对象是具体的。要建立对象,必须先定义类。要建立对象,必须先定义类。9类的定义类的定义l类的定义类的定义:class 类名类名 private 类型类型 成员名成员名11;public 类型类型 成员名成员名21;protected 类型类型 成员名成员名31;/此处分号不可缺少此处分号不可缺少l几点说明:几点说明:类名:类名:按标识符命名规则命名。按标识符命名规则命名。注意:注意:类是一种构造的数据类型,定义一个类,就是类是一种构造的数据类型,定义一个类,就是定义该类中的成员数据和成员函数,编译系统不为任何数据类型分配
15、存储空间,当定义该类中的成员数据和成员函数,编译系统不为任何数据类型分配存储空间,当然也不为类分配存储空间!然也不为类分配存储空间!10类的定义类的定义 成员数据:成员数据:花括号中依次列出组成该类的各个成员数据,并对各成员数据进行类型声花括号中依次列出组成该类的各个成员数据,并对各成员数据进行类型声明,其类型可以是明,其类型可以是C+中任意基本数据类型,也可以是已定义的构造数据类型。中任意基本数据类型,也可以是已定义的构造数据类型。注意:注意:声明成员数据时,不能指定其存储类型为:声明成员数据时,不能指定其存储类型为:auto、register、extern,因为系统并因为系统并不为类分配存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章1类与对象 对象
限制150内