第5章--类与对象.pptx
《第5章--类与对象.pptx》由会员分享,可在线阅读,更多相关《第5章--类与对象.pptx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+程序设计新世纪应用型高等教育教材编审委员会 组编主编 罗烨 李秉璋第二版新世纪应用型高等教育软件专业系列规划教材第5章 类与对象5.1 面向对象程序设计概述3对象、类和消息是面向对象技术的核心。对象、类和消息是面向对象技术的核心。1.对象对象在现实世界中在现实世界中,一切事物一切事物(实体实体)都可看成是面向对象技术中的对象。对象可以是都可看成是面向对象技术中的对象。对象可以是有形的有形的,比如汽车、计算机比如汽车、计算机;也可以是无形的也可以是无形的,比如授课、计划。对象可以是简单的比如授课、计划。对象可以是简单的,比如一本比如一本教材教材,也也可以是复杂的可以是复杂的,如由许多元器件构
2、成的手机。任何一个对象都具有属性和行为两大如由许多元器件构成的手机。任何一个对象都具有属性和行为两大特征特征。属。属性用于描述对象的静态特征性用于描述对象的静态特征,比如汽车的功率、载重、轮子个数等。行为描述对象比如汽车的功率、载重、轮子个数等。行为描述对象的动态的动态特特征征,比如前进、倒退、加速。比如前进、倒退、加速。5.1.1 面向对象的概念5.1 面向对象程序设计概述42.类类类是对象的抽象类是对象的抽象,对象则是类的具体化对象则是类的具体化,称为称为类的实例。通常类的实例。通常,又称类是一种用于创建对象的又称类是一种用于创建对象的模板模板。在。在类中类中,属性通常称为数据属性通常称为
3、数据,行为称为操作、行为称为操作、方法方法。3.消息消息各对象间的联系是通过向对象发送消息来各对象间的联系是通过向对象发送消息来实现的。要使对象实现某种行为实现的。要使对象实现某种行为,必须向必须向对象对象发发送相应的消息送相应的消息。5.1.1 面向对象的概念5.1 面向对象程序设计概述5面向对象程序设计的一个简单定义是面向对象程序设计的一个简单定义是:将将具有相同特征具有相同特征(即具有相同数据和操作即具有相同数据和操作)的的同一同一组对象用类来描述。面向对象程组对象用类来描述。面向对象程序设计是把程序构造成由若干个对象组成序设计是把程序构造成由若干个对象组成,每个对象每个对象由一些由一些
4、数据以及对这些数据实施数据以及对这些数据实施的操作构成。对数据的操作是通过向对象发送消息来的操作构成。对数据的操作是通过向对象发送消息来实现实现的。的。5.1.2 什么是面向对象程序设计5.1 面向对象程序设计概述6从上述定义可以看出从上述定义可以看出,面向对象程序设计和之前的面向过程程序设计存在不同之处面向对象程序设计和之前的面向过程程序设计存在不同之处:5.1.2 什么是面向对象程序设计(1)在面向过程的程序设计中在面向过程的程序设计中,函数是构成程序的基本模块。在面向对象的函数是构成程序的基本模块。在面向对象的程程序设计中序设计中,对象是构成程序的基本模块。对象是构成程序的基本模块。(2
5、)在面向过程的程序设计中在面向过程的程序设计中,数据和操作是分离的数据和操作是分离的,数据作为参数传递给对数数据作为参数传递给对数据据进行操作进行操作的函数。在面向对象的程序设计中的函数。在面向对象的程序设计中,数据和操作是封装在一起的数据和操作是封装在一起的,形成一形成一个整体。个整体。(3)在面向过程的程序设计中在面向过程的程序设计中,数据的表示是公开的数据的表示是公开的,用户可以直接对数据进行用户可以直接对数据进行处理处理。在。在面向对象的程序设计中面向对象的程序设计中,用户只能通过对象发送消息来操作数据。用户只能通过对象发送消息来操作数据。5.1 面向对象程序设计概述7面向对象程序设计
6、具有以下几个特点面向对象程序设计具有以下几个特点:5.1.3 面向对象程序设计的特点1.抽象2.封装性3.继承性4.多态性5.1 面向对象程序设计概述8软件开发方法或技术有优劣之分软件开发方法或技术有优劣之分,对一个软件开发方法或技术的评价标准主要是看对一个软件开发方法或技术的评价标准主要是看它的它的开发效率和对软件质量的保证程度。开发效率指使用该方法或技术进行软件开发开发效率和对软件质量的保证程度。开发效率指使用该方法或技术进行软件开发的难的难易程度易程度以及它对缩短开发周期的支持程度。软件质量是指用该方法或技术开发出以及它对缩短开发周期的支持程度。软件质量是指用该方法或技术开发出的软件的的
7、软件的正确性正确性、健壮性、可复用性、易维护性以及效率等。、健壮性、可复用性、易维护性以及效率等。5.1.4 面向对象的优点1.数据与操作合一数据与操作合一2.软件复用件复用3.软件件维护5.2 类与对象概述9在在C+中中,类定义的语法格式如下类定义的语法格式如下:5.2.1 类定义5.2 类与对象概述10对于类定义对于类定义,需要说明以下几点需要说明以下几点:(1)类属于类型范畴类属于类型范畴,系统不会为类分配内存空间系统不会为类分配内存空间,就像系统不会为就像系统不会为int、double等类等类型分配型分配内存一样。因此在类定义中不能对数据成员进行初始化内存一样。因此在类定义中不能对数据
8、成员进行初始化。(2)类的三种访问类的三种访问控制控制private、public、protected,在类中没有先后次序在类中没有先后次序,可以多次出可以多次出现现,也也可以不出现。可以不出现。C+规定规定,类中默认的访问控制是私有的类中默认的访问控制是私有的,即即private。(3)和结构体定义类似和结构体定义类似,类定义结束的最后必须加分号类定义结束的最后必须加分号“;”。(4)在在CGoods类定义类定义中只对成员函数进行了声明中只对成员函数进行了声明,并没有对其进行定义并没有对其进行定义。(5)类的成员不能使用类的成员不能使用auto、register和和extern等修饰符等修饰
9、符,一般只能用一般只能用static修饰符。修饰符。5.2.1 类定义5.2 类与对象概述11在在C+中有中有三种成员访问控制类型三种成员访问控制类型:5.2.2 类成员的访问控制公有公有类型型public私有私有类型型private保保护类型型protected5.2 类与对象概述12类成员的访问控制类成员的访问控制:将需要隐藏的成员设为私有类型将需要隐藏的成员设为私有类型,成为一个成为一个外部外部无法访问的黑无法访问的黑盒子盒子;将提供给外界的接口设为公有类型将提供给外界的接口设为公有类型,对外部就是透明的对外部就是透明的;而保护而保护成员就成员就相当于一个相当于一个笼子笼子,它给派生类提
10、供一些特殊的访问控制。它给派生类提供一些特殊的访问控制。5.2.2 类成员的访问控制5.2 类与对象概述13建立对象的方法类似于定义变量。语法格式为建立对象的方法类似于定义变量。语法格式为:5.2.3 对象的创建与使用定义了对象后定义了对象后,对对象成员的访问采用如下形式对对象成员的访问采用如下形式:5.2 类与对象概述14建立同类对象后建立同类对象后,每个对象中的数据成员都占用独立的存储空间每个对象中的数据成员都占用独立的存储空间,保存着各自的数据。保存着各自的数据。而对于而对于同类对象同类对象,它们的成员函数都是相同的代码它们的成员函数都是相同的代码,没有必要为每个同类对象的成员函数没有必
11、要为每个同类对象的成员函数分配分配独立的独立的存储空间存储空间,只需为类的成员函数分配一份存储空间只需为类的成员函数分配一份存储空间,存放代码。而这份代码被存放代码。而这份代码被这个类的这个类的所有所有对象共用。对象共用。5.2.4 对象的存储方式5.2 类与对象概述151.对象指针对象指针也可以使用对象指针访问对象。对象指针遵循一般指针的规则。例如也可以使用对象指针访问对象。对象指针遵循一般指针的规则。例如:CGoods car,*pcar;/pcar为为CGoods类类的指针的指针 pcar=&car;/pcar指向了指向了car前面已经介绍过前面已经介绍过,使用使用“对象名对象名.成员成
12、员名名”就可以访问对象成员。有了指向对象的指就可以访问对象成员。有了指向对象的指针针,可以可以通过该指针经成员访问运算符通过该指针经成员访问运算符“-”访问访问对象成员对象成员。5.2.5 对象指针和成员指针5.2 类与对象概述162.成员成员指针指针也可以通过指针访问对象成员。指向对象成员的指针使用前要先定义也可以通过指针访问对象成员。指向对象成员的指针使用前要先定义,再赋值再赋值,最后最后引用引用。定义对象成员指针的语法格式为。定义对象成员指针的语法格式为:定义了指向成员的指针之后定义了指向成员的指针之后,需要对其赋值需要对其赋值,也就是要确定指针指向类中哪一个成员也就是要确定指针指向类中
13、哪一个成员。对对成员指针赋值的语法形式为成员指针赋值的语法形式为:5.2.5 对象指针和成员指针5.3 构造函数和析构函数171.构造构造函数的定义函数的定义类的构造函数的作用是在对象建立后类的构造函数的作用是在对象建立后,对对象的非静态数据成员初始化。构造函数对对象的非静态数据成员初始化。构造函数的的定义定义形式如下形式如下:5.3.1 构造函数的定义与调用5.3 构造函数和析构函数182.构造构造函数的调用函数的调用如前述如前述,构造函数的作用是完成对象初始化。因此在新建对象获得内存空间后构造函数的作用是完成对象初始化。因此在新建对象获得内存空间后,该该对对象就要象就要调用构造函数调用构造
14、函数,对数据成员进行初始化。这一过程是自动进行的。当类中有多个对数据成员进行初始化。这一过程是自动进行的。当类中有多个构构造函数造函数时时,系统根据对象提供的参数决定调用哪个构造函数。我们以三参数构造函数系统根据对象提供的参数决定调用哪个构造函数。我们以三参数构造函数5.3.1 构造函数的定义与调用5.3 构造函数和析构函数193.成员成员初始化表初始化表对于类的构造函数对于类的构造函数,还有如下形式还有如下形式:成员初始化表的作用是向类传递初始化时的参数成员初始化表的作用是向类传递初始化时的参数,并初始化数据成员。成员初始化并初始化数据成员。成员初始化表表的的具体格式是具体格式是:5.3.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象
限制150内