七章节类与对象课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《七章节类与对象课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 对象 课件
- 资源描述:
-
1、第七章第七章 类与对象类与对象2教学目标(1)理解以类与对象为核心的面向对象程序设计的基本思想,包括封装、继承和多态性的概念及其在面向对象程序中的体现;(2)掌握类的定义方法;(3)掌握类成员的访问权限控制;(4)掌握对象的创建与使用方法;(5)了解构造函数与析构函数的定义与使用。(6)了解类的继承与派生、运算符重载、以及模板等概念。3基本内容 7.1 面向对象程序设计概述 7.2 类与对象 7.3 继承47.1 面向对象程序设计概述 两种程序设计思想:面向过程的程序设计面向过程的程序设计(Structure ProgrammingStructure Programming)以功能为中心,采用
2、函数来描述操作以功能为中心,采用函数来描述操作(动词动词)面向对象程序设计面向对象程序设计(Object Oriented Object Oriented ProgrammingProgramming)以数据为中心,采用对象来描述内部属性和操作方以数据为中心,采用对象来描述内部属性和操作方法法(名词名词)5对象和面向对象 客观世界实体例:人类例:人类 静态特征(属性静态特征(属性attributeattribute)姓名、性别、年龄、班级(姓名、性别、年龄、班级(/单位)、身高等单位)、身高等 动态特征(行为动态特征(行为behaviorbehavior)吃饭、睡觉、说话、走路、上课(吃饭、睡
3、觉、说话、走路、上课(/上班)等上班)等例:汽车例:汽车 静态特征(属性静态特征(属性attributeattribute)品牌、生产厂、型号、颜色等品牌、生产厂、型号、颜色等 动态特征(行为动态特征(行为behaviorbehavior)行驶、转弯、鸣笛、刹车等行驶、转弯、鸣笛、刹车等6面向对象的基本特征 抽象:数据抽象+代码抽象 封装:过程和数据封藏起来 继承:基类和派生类 多态性:虚函数、函数重载7OOP的优点 开发时间短,效率高,可靠性高,所开发的程序更强壮重用,共享,可维护性,精简 适合于大程序长时间的开发工作87.2 类与对象 7.2.1 类的定义 7.2.2 成员函数 7.2.3
4、 对象的使用 7.2.4 构造函数与析构函数9类(Class)-数据类型 类是具有相同属性和相同的方法的对象的集合,它是一种既包含数据又包含函数的抽象数据类型。类的构成数据成员(数据成员(Data MemberData Member),即类的属性;),即类的属性;成员函数(成员函数(Member FunctionMember Function),即类的方),即类的方法;法;107.2.1 类的定义 class 类名 private:/私有成员 私有的数据成员和成员函数;protected:/保护成员 保护的数据成员和成员函数;public:/公有成员 公有的数据成员和成员函数;;11访问控制权
5、限 私有部分(private):数据成员和成员函数只能在该类的范围内被本类的成员函数访问体现类的封装性 保护部分(protected):与私有成员的性质相似 公有部分(public):成员既可以被本类的成员函数访问,也在类外被该类的对象访问对外界的接口 12例:定义一个狗类(Dog)class Dogprivate:char name20;/狗的名字intage;/狗的年龄public:voidset(char*n,int a);/设置数据成员值的函数voiddisplay();/输出数据成员值的函数voidspeak();/发出狗叫声的函数;137.2.2 成员函数 成员函数的一般形式:函数
6、类型函数类型 类名类名:函数名函数名(参数表参数表)函数体函数体14类的作用域 一个类的所有数据成员和成员函数都在该类的作用域内(包括在类声明外部定义的成员函数)类中的每个成员都可以直接访问本类中的其他任何成员。如果在类作用域之外对该类的数据成员和成员函数进行访问,则要受到一定的限制,有时甚至是不允许的。15例:Dog类成员函数的定义void Dog:set(char*n,int a)strcpy(name,n);age=a;void Dog:display()coutnametageendl;void Dog:speak()coutArf!Arf!endl;/Dog类较完整的定义class
7、Dog private:char name20;intage;public:voidset(char*n,int a);voiddisplay();voidspeak();void Dog:set(char*n,int a)strcpy(name,n);age=a;void Dog:display()coutnametageendl;void Dog:speak()coutArf!Arf!endl;/当成员函数比较简单时,可在类定义中直接给出函数体class Dog private:char name20;intage;public:voidset(char*n,int a)strcpy(na
8、me,n);age=a;voiddisplay()coutnametageendl;voidspeak()coutArf!Arf!-运算符运算符19例7-1:Dog类和对象int main()char name020;int age0;Dog dog1,dog2;cout name0 age0;dog1.set(name0,age0);cout 第一条狗:endl;dog1.display();dog1.speak();dog2.set(LaiFu,2);cout 第二条狗:endl;dog2.display();dog2.speak();dog1=dog2;/同类对象之间可以互相赋值cout
9、 对象赋值后的第一条狗:endl;dog1.display();dog1.speak();return 0;20对象的使用成员函数可直接访问本类中定义的数据成员(公有和私有)类的作用域内类的对象访问其公有数据成员或成员函数需使用运算符“”禁止直接访问一个对象中的私有/保护成员同类对象之间可以整体赋值对象用作函数的参数时属于赋值调用;函数可以返回一个对象。217.2.4 构造函数与析构函数 构造函数(Constructor)是类的一个特殊成员函数,定义了创建对象的方法,提供了初始化对象的一种简便手段。与构造函数相对应,析构函数(Destructor)用于撤消一个对象,完成释放对象成员所占存储空间
10、的工作。22构造函数(构造函数(Constructor)格式:类名类名:类名类名(参数表参数表)函数体函数体 注意事项:构造函数必须与类名相同构造函数必须与类名相同构造函数没有返回值构造函数没有返回值其功能是对对象进行初始化,一般由一系列其功能是对对象进行初始化,一般由一系列赋值语句构成赋值语句构成由系统自动调用由系统自动调用23析构函数(析构函数(Destructor)格式为:类名类名:类名类名();注意事项:函数名与类名相同,只是在前边加函数名与类名相同,只是在前边加“”符号符号 析构函数不得返回任何值析构函数不得返回任何值 析构函数不得带有任何参数析构函数不得带有任何参数 其功能是释放对
11、象成员所占用的存储,一般其功能是释放对象成员所占用的存储,一般由一系列的由一系列的delete组成组成 由系统自动调用由系统自动调用24例7-2:使用构造函数和析构函数的Dog类class Dog char name20;intage;public:Dog()/构造函数构造函数1strcpy(name,XXX);age=0;Dog(char*n,int a)/构造函数构造函数2strcpy(name,n);age=a;Dog()/析构函数析构函数cout析构函数被调用析构函数被调用endl;voiddisplay()coutnametageendl;voidspeak()coutArf!Arf
12、!endl;257.3 继承 7.3.1 派生类的定义 7.3.2 派生类的继承方式和访问属性 7.3.3 派生类的构造函数和析构函数26生物类的层次关系277.3.1 派生类的定义 派生类的定义格式为:class 派生类名:继承方式 基类名1,继承方式 基类名2,继承方式 基类名n派生类增加的成员声明;;28/人员类定义class Personprotected:char Name10;/姓名char Sex;/性别public:void ShowMe()/显示数据成员cout Namet Sexn;/雇员类定义class Employee:public Person char Dept20
13、;/工作部门public:void ShowMe()/显示数据成员cout Namet Sext Dept n;单继承的例子单继承的例子 29/飞机类 class Planechar propeller;/螺旋桨public:void flying();/飞行方法;/船类class Boatchar helm;/舵public:void floating();/飘浮方法;/水上飞机类 class Seaplane:public Plane,public Boat;多继承的例子多继承的例子 307.3.2 派生类的继承方式和访问属性 私有继承private 公有继承public 保护继承prot
展开阅读全文