面向对象编程类和对象课件.ppt

上传人:石*** 文档编号:87281185 上传时间:2023-04-16 格式:PPT 页数:32 大小:645.50KB
返回 下载 相关 举报
面向对象编程类和对象课件.ppt_第1页
第1页 / 共32页
面向对象编程类和对象课件.ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《面向对象编程类和对象课件.ppt》由会员分享,可在线阅读,更多相关《面向对象编程类和对象课件.ppt(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、关于面向对象编程类和对象第1页,此课件共32页哦第2章 类和对象2.1 面向对象程序设计方法概述2.2 类的声明和对象的定义2.3 类的成员函数2.4 对象成员的引用第2页,此课件共32页哦2.1 面向对象程序设计方法概述抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。先注意问题的本质及描述,其次是实现过程或细节。数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。代码抽象:描述某类对象的共有的行为特征或具有的功能。抽象的实现:通过类的声明。第3页,此课件共32页哦2.1 面向对象程序设计方法概述抽象实例钟表数据抽象:int Hour,int Minute,

2、int Second代码抽象:SetTime(),ShowTime()class Clock public:void SetTime(int NewH,int NewM,int NewS);void ShowTime();private:int Hour,Minute,Second;钟表类钟表类第4页,此课件共32页哦2.1 面向对象程序设计方法概述封装:将抽象出的数据成员、代码成员相结合,将它们视为一个整体。目的是曾强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。实现封装:类声明中的第5页,此课件共32页哦2.1 面向对象程序设计方法

3、概述继承与派生是C+中支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,进行更具体的说明。第6页,此课件共32页哦2.1 面向对象程序设计方法概述多态:同一名称,不同的功能实现方式目的:达到行为标识统一,减少程序中标识符的个数。实现:重载函数和虚函数第7页,此课件共32页哦2.2 类的声明和对象的定义class A int x,y;public:A(int a)x=a;cout“1n”;A(int a,int b)x=a,y=b;cout“2n”;A a1(3);void f(void)A b(2,3);void main(void)A a2(4,5);f();f();1222第8页

4、,此课件共32页哦2.2 类的声明和对象的定义类的定义类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的运算封装在一起的 集合体。类将一些数据及与数据相关的函数封装在一起,使类中的数据得到很好的“保护”。在大型程序中不会被随意修改。第9页,此课件共32页哦类的定义格式:class 类名 private:成员数据;成员函数;public:成员数据;成员函数;protected:成员数据;成员函数;;关键字类名私有公有保护class Student private:char Name20;float Math;float Chiese;public:float average;void

5、 SetName(char*name);void SetMath(float math);void SetChinese(float ch);float GetAverage(void);分号不能少2.2 类的声明和对象的定义第10页,此课件共32页哦2.2 类的声明和对象的定义priviate限定的成员称为私有成员,私有成员只能在该类的内部使用,即私有成员数据只允许该类中成员函数使用,私有成员函数只能被该类内的成员函数调用;类就相当于私有成员的作用域。public限定的成员称为公有成员,公有成员的数据或函数不受类的限制,可以在类内或类外自由使用;对类而言是透明的。protected限定的成员

6、称为保护成员,只允许在类内及该类的派生类中使用保护的数据或函数。即保护成员的作用域是该类及该类的派生类。第11页,此课件共32页哦2.2 类的声明和对象的定义每一个限制词(private等)在类体中可使用多次。一旦使用了限制词,该限制词一直有效,直到下一个限制词开始为止。如果未加说明,类中成员默认的访问权限是private,即私有的。第12页,此课件共32页哦2.2 类的声明和对象的定义class A float x,y;public:void Setxy(float a,float b)x=a;y=b;void Print(void)coutxtyendl;在类外不能直接使用 x 或 y,必

7、须通过Setxy()给 x 或 y 赋值,通过Print()输出 x 或 y。xySetxy()Print()A私有数据公有函数第13页,此课件共32页哦2.2 类的声明和对象的定义在定义一个类时,要注意如下几点:1、类具有封装性,并且类只是定义了一种结构(样板),所以类中的任何成员数据均不能使用关键字extern,register限定其存储类型。2、在定义类时,只是定义了一种导出的数据类型,并不为类分配存储空间,所以,在定义类中的数据成员时,不能对其初始化。如:class Test int x=5,y=6;/是不允许的 extern float x;/是不允许的 第14页,此课件共32页哦2

8、.2 类的声明和对象的定义对象 只有在定义了属于类的变量后,系统才会为类的变量分配空间。对象是类的实例,定义对象之前,一定要先说明该对象的类。类的变量我们称之为对象。第15页,此课件共32页哦2.2 类的声明和对象的定义不同对象占据内存中的不同区域,它们所保存的数据各不相同,但对成员数据进行操作的成员函数的程序代码均是一样的。对象的定义格式:类名 对象名1,对象名2,;class 类名 对象名1,对象名2,;例 Student st1,st2;类名对象名在建立对象时,只为对象分配用于保存数据成员的内存空间,而成员函数的代码为该类的每一个对象所共享。第16页,此课件共32页哦2.2 类的声明和对

9、象的定义对象的定义方法同结构体定义变量的方法一样,也分三种,当类中有数据成员的访问权限为私有时,不允许对对象进行初始化。class A float x,y;public:void Setxy(float a,float b )x=a;y=b;void Print(void)coutxtyendl;a1,a2;void main(void)A a3,a4;定义全局对象定义局部对象第17页,此课件共32页哦2.2 类的声明和对象的定义对象的使用一个对象的成员就是该对象的类所定义的成员,有成员数据和成员函数,引用时同结构体变量类似,用“.”运算符。第18页,此课件共32页哦2.2 类的声明和对象的定

10、义class A float x,y;public:float m,n;void Setxy(float a,float b )x=a;y=b;void Print(void)coutxtyendl;void main(void)A a1,a2;/定义对象 a1.m=10;a1.n=20;/为公有成员数据赋值 a1.Setxy(2.0,5.0);/为私有成员数据赋值 a1.Print();输出:2 5第19页,此课件共32页哦2.2 类的声明和对象的定义class A float x,y;public:float m,n;void Setxy(float a,float b )x=a;y=b;

11、void Print(void)coutxtyendl;void main(void)A a1,a2;a1.m=10;a1.n=20;/为公有成员数据赋值 a1.x=2;a1.y=5;a1.Setxy(2.0,5.0);a1.Print();必须通过类内公有函数访问私有数必须通过类内公有函数访问私有数据成员据成员非法,私有成员不能非法,私有成员不能在类外访问在类外访问第20页,此课件共32页哦2.3 类的成员函数成员函数的性质:与普通函数相同:返回值和函数类型;不同:属于一个类的成员,出现在类体中。注意成员函数的权限(它能否被调用)、作用域(函数能使用什么范围中的数据和函数)。声明为priva

12、te的私有成员函数不能被类外界调用,为本类中其他成员函数提供服务,是其他函数的工具函数。第21页,此课件共32页哦2.3 类的成员函数在类外定义成员函数:1.成员函数可以在类体中只声明,在类体外进行函数定义。2.类体外定义函数时,函数名前加上类名和“:”(作用域限定符或作用域运算符)。3.好处:减少类体的长度,使类体清晰,便于阅读;把类的接口和实现细节相分离。第22页,此课件共32页哦2.3 类的成员函数class Studentpublic:void display();/成员函数声明private:int num;string name;char sex;void Student:disp

13、lay()/类体外成员函数定义 cout“num:”numendl;cout“name:”nameendl;cout“sex:”sexendl;Student stud1,stud2;类名域运算符第23页,此课件共32页哦2.3 类的成员函数class A float x,y;public:void Setxy(float a,float b)x=a;y=b;void Print(void)coutxtyendl;在类体内定义在类体内定义成员函数成员函数成员函数与成员数据的定义不分先后,可以先说明函数原型,再在类体外定义函数体。第24页,此课件共32页哦2.3 类的成员函数class A fl

14、oat x,y;public:void Setxy(float a,float b);void Print(void);;void A:Setxy(float a,float b)x=a;y=b;void A:Print(void)coutxtyendl;在类体内说明成在类体内说明成员函数原型员函数原型在类体外定义在类体外定义成员函数成员函数第25页,此课件共32页哦2.3 类的成员函数在类体外定义成员函数的格式::()./函数体函数体void A:Setxy(float a,float b)x=a;y=b;函数类型类名函数名形参列表函数体第26页,此课件共32页哦2.3 类的成员函数内联成员

15、函数当我们定义一个类时,可以在类中直接定义函数体。这时成员函数在编译时是作为内联函数来实现的。同时,我们也可以在类体外定义类的内联成员函数,在类体内说明函数,在类体外定义时,在成员函数的定义前面加上关键字inline。第27页,此课件共32页哦2.3 类的成员函数class A float x,y;public:void Setxy(float a,float b);void Print(void);;inline void A:Setxy(float a,float b)x=a;y=b;inline void A:Print(void)coutxtyendl;说明该成员函数为内联第28页,此

16、课件共32页哦2.4 对象成员的引用类的对象如何引用私有数据成员1、通过公有函数为私有成员赋值class Ttesint x,y;public:void Setxy(int a,int b)x=a;y=b;void Printxy(void)coutx=xty=yendl;void main(void)Test p1,p2;p1.Setxy(3,5);p1.Printxy();调用公有函数为私有对象赋值第29页,此课件共32页哦2.4 对象成员的引用class Test int x,y;public:void Setxy(int a,int b)x=a;y=b;void Getxy(int *

17、px,int*py)*px=x;*py=y;/提取x,y值 void Printxy(void)coutx=xty=yendl;void main(void)Test p1,p2;p1.Setxy(3,5);int a,b;p1.Getxy(&a,&b);/将 a=x,b=y coutatbendl;输出:输出:3 5第30页,此课件共32页哦2.4 对象成员的引用3、利用函数访问私有数据成员class Test int x,y;public:void Setxy(int a,int b)x=a;y=b;int Getx(void)return x;/返回x值 int Gety(void)return y;/返回y值 void Printxy(void)coutx=xty=yendl;void main(void)Test p1,p2;p1.Setxy(3,5);int a,b;a=p1.Getx();b=p1.Gety();/将 a=x,b=y coutatbendl;函数值就是私有成员变量的值第31页,此课件共32页哦感感谢谢大大家家观观看看第32页,此课件共32页哦

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com