版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页第七章类和对象Visualc++程序设计教学ppt
VisualC++程序设计语言
第7章
类和对象2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部1
Visualc++程序设计教学ppt
第7章
类和对象
7.1面对对象程序设计概述7.2类和对象
7.3构造函数7.4析构函数
2022-7-2
江苏科技高校计算机科学与工程学院计算机基础教学部
Visualc++程序设计教学ppt
7.1面对对象程序设计概述1、传统开发方法的不足面对过程的程序设计方法(结构化程序设计方法)存在的主要问题:(1)软件的稳定性、可修改性和可重用性都较差;(2)软件可维护性差;(3)开发出的软件不能满意用户需要。
2022-7-2
江苏科技高校计算机科学与工程学院计算机基础教学部
Visualc++程序设计教学ppt
7.1面对对象程序设计概述2、面对对象程序设计概念:面对对象程序设计(ObjectOrientedProgramming,简称OOP)把数据及其操作作为一个整体对待,其程序一般由类的定义和类的运用两部分组成,通过向对象发送消息来完成相应的操作。特点:封装性(隐蔽性):通过类将对象的属性(数据)和行为(处理数据的函数)封装为整体,通过接口与外界交互;继承性(派生性):由基类产生派生类;多态性:不同的对象,收到同一消息可以产生不同的结果。2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部4
Visualc++程序设计教学ppt
7.2类和对象7.2.1类和对象的概念
7.2.2类的定义7.2.3成员函数7.2.4对象的定义和运用7.2.5类的作用域
2022-7-2
江苏科技高校计算机科学与工程学院计算机基础教学部
Visualc++程序设计教学ppt
7.2.1类和对象的概念1、对象的概念对象是详细的事物。对象具有各自的特征。对象的特征用数据值来描述。如:06400020陈红计算机9006400021张蓝计算机95对象具有行为,对象及其操作称为对象的行为。如输出陈红的信息,转变其特征。OOP实现了对象数据和操作的结合,把数据和操作封装在统一体中。2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部6
Visualc++程序设计教学ppt
7.2.1类和对象的概念2、类的概念类是具有相同类型对象的抽象。从程序设计的角度看,类是用户定义的数据类型,对象就是类类型(classtype)的变量。类具有属性,它是对象特征的抽象,用数据结构来描述类的属性。类具有操作,它是对象行为的抽象,用操作名和实现该操作的方法来描述。VC++中,把类的成员分为两个部分:数据(相当于属性)和对数据的操作(相当于行为,用函数实现)。2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部7
Visualc++程序设计教学ppt
7.2.1类和对象的概念3、类和对象的关系对象的抽象是类,类的详细化就是对象,也可以说类的实例是对象。其关系如图7-1。类:同学属性:数据结构2022-7-2
对象:陈红特征:
学号实例姓名专业抽象成果图7-1类与对象的关系
06400020陈红计算机908
数据值
江苏科技高校计算机科学与工程学院计算机基础教学部
Visualc++程序设计教学ppt
7.2.2类的定义VC++中类定义的一般格式如下:classClassName{private:数据成员成员函数public:数据成员成员函数protected:数据成员成员函数};2022-7-2
//类头//类体开始class是定义类的关键字,ClassName是类名,为标识符。类的成员放在类体中:数据成员是变量的说明语句;成员函数是对数据成员的操作。类体从“{”开始到“}”结束。
//类体结束9
江苏科技高校计算机科学与工程学院计算机基础教学部
Visualc++程序设计教学ppt
7.2.2类的定义关键字public(公有)、private(私有)和protected(爱护)称为访问掌握符,用于设置类成员的访问权限。public表示在其后声明的全部成员在类内、类外均可以被访问;private表示在其后声明的全部成员只能在该类内被访问;protected表示在其后声明的全部成员可以在该类内或派生类内被访问。三个关键字的运用次数、顺次不限,有效范围至涌现下一个关键字或类定义结束止。类中缺省访问权限说明的成员声明是private的。2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部10
Visualc++程序设计教学ppt
7.2.2类的定义定义类时留意:类的定义是一个类型说明语句,最末的语句结束符“;”不能少。类是一种数据类型,定义时系统不为类安排存储空间,所以不能对类的数据成员初始化。类中的任何数据成员不能运用关键字e*tern、auto或register限定其存储类型。但可以用static限定存储类型。类中数据成员的类型可以是任意的,如整型、实型、字符型、指针、引用等,还可以是另一个类的对象。结构体是类的特例,在结构体中既可以定义成员函数,也可以指定访问权限。不同之处在于结构体中缺省的访问掌握符为public。2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部11
Visualc++程序设计教学ppt
7.2.2类的定义例7-1定义一个平面二维坐标类。算法:二维坐标由横坐标*和纵坐标y组成,用数据成员*和y表示;行为包括取坐标、置坐标、打印坐标,用相应的成员函数实现。编程实现:classPoint{//定义类名为Point的类private://定义私有数据成员int*;//*表示横坐标inty;//y表示纵坐标public://定义公有成员函数intGet*();//取*坐标intGetY();//取y坐标voidSet*Y(int,int);//置*、y坐标voidprint*Y();//打印*、y坐标};2022-7-2
学习与实践:通常类的数据成员是私有的,而成员函数是公有的。该类定义能否省略关键字private或关键字public?成员*、y能否如下定义:int*,y;12
江苏科技高校
计算机科学与工程学院计算机基础教学部
Visualc++程序设计教学ppt
7.2.3类的成员函数1、成员函数的定义。类的成员函数既可以在类中定义,也可以在类中说明、类外定义。在类外定义时肯定要先在类中说明,此时为函数原型说明语句;在类外定义的格式为:函数类型类名::成员函数名(形参表){类的成员函数无论是在类函数体中定义,还是在类外定义,}都是类的一部份,都可以径直访问类中的全部成员。2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部13
Visualc++程序设计教学ppt
7.2.3类的成员函数例7-2例7-1中Point类的成员函数定义。intPoint::Get*(){return*;}intPoint::GetY(){returny;}voidPoint::print*Y(){cout(*,y“)\n”;}voidPoint::Set*Y(inta,intb){*=a;y=b;}学习与实践:能否将成员函数定义中的Point::去掉?2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部14
Visualc++程序设计教学ppt
7.2.3类的成员函数以下类的定义是否正确?
classPoint{int*,y;public:intGet*(){return*;}intGetY();//AvoidSet*Y(inta,intb){*=a;y=b;}voidprint*Y(){cout(*,y“)\n”;}};intPoint::GetY(){returny;}//B
学习与实践:(1)能否去掉A行?(2)能否去掉B行?
2022-7-2
江苏科技高校计算机科学与工程学院计算机基础教学部
Visualc++程序设计教学ppt
7.2.3类的成员函数2、成员函数的内联特性。在类中定义的类的成员函数,是内联函数;类中说明、类外定义的成员函数不具有内联特性,要使其成为内联函数,在类体外定义时,需要在函数类型前加关键字inline,其定义的格式为:inline函数类型类名::成员函数名(形参表){函数体}2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部16
Visualc++程序设计教学ppt
7.2.3类的成员函数3、成员函数的重载与缺省参数。与一般函数一样,类的成员函数既可以重载,也可以具有缺省参数。例7-3定义重载的成员函数及缺省参数的成员函数。classPoint{学习与实践:int*,y;(1)缺省参数既可以在说明public:时给出,也可以在定义时voidSet*(inta=0){*=a;}voidSetY(int);//A给出,但不能在说明和定voidSet*Y(int=0);义时同时给出。voidSet*Y(int,int);(2)能否把A行改为:};voidSetY(int=0);voidPoint::SetY(intb=1){y=b;}voidPoint::Set*Y(intb){*=0;y=b;}voidPoint::Set*Y(inta,intb){*=a;y=b;}2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部17
Visualc++程序设计教学ppt
7.2.4对象的定义和运用1、对象的定义定义了类以后,就可以定义对象(类型的变量)。(1)定义对象的基本格式类名对象名1,对象名2,…,对象名n;(2)定义对象的方法①创建类的同时定义对象。②创建类后再定义对象。③不定义类名径直定义对象。(3)关于对象
定义的几点说明:①对象需要先定义后运用。对象也有作用域。②可以定义指针对象、对象数组、指针对象数组,引用对象,指向一维数组的指针对象等。如:PointS,*P,A[8],*B[10],R=S,(*Q)[6];等。③对象也可以动态生成,即由new产生。如:Point*Q=newPoint;2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部18
Visualc++程序设计教学ppt
7.2.4对象的定义和运用例7-4用三种不同的方法定义对象。classPoint{学习与实践:int*,y;本例中定义的对象哪些public:intGet*(){return*;}是同类型对象?intGetY(){returny;}voidprint*Y(){cout*\ty\n;}}P1,P2;//定义了Point类型的对象P1和P2PointQ1,Q2;//定义了Point类型的对象Q1和Q2class{int*,y;public:intGet*(){return*;}intGetY(){returny;}voidprint*Y(){cout*\t;couty\n;}}R1,R2;//定义了对象R1和R22022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部19
Visualc++程序设计教学ppt
7.2.4对象的定义和运用2、对象的运用。对象具有类定义的全部数据成员及成员函数,一般通过成员运算符“.”或“-”来访问。其基本格式为:(1)通过对象运用数据成员对象名.成员名(2)通过对象运用成员函数对象名.成员函数名(实参表)(3)通过指针运用数据成员指针对象-成员名(4)通过指针运用成员函数指针对象-成员函数名(实参表)对象可以作为函数参数,是值传递;同样也可以引用传递或地址传递;对象可以作为函数的返回值,以及在赋值语句中被复制。如:2022-7-2江苏科技高校计算机科学与工程学院计算机基础教学部20
Visualc++程序设计教学ppt
7.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 13《桥》说课稿-2024-2025学年六年级上册语文统编版
- 增材制造与创新设计:从概念到产品 课件 第6、7章 3D打印产品创新结构设计、增材制造创新综合应用实例
- 2024技术开发合同约定的技术成果交付和保密
- 农科创新之路
- 科技引领电商新纪元
- 12 故宫博物院(说课稿)-2024-2025学年统编版语文六年级上册
- 基于信任关系产生的租赁合同范本(2篇)
- 专项活动策划委托:2024年合作合同版B版
- 2024年版混砖结构烟囱拆除操作合同版B版
- 10-1《劝学》说课稿 2024-2025学年统编版高中语文必修上册
- 医院感染风险评估表(适用于病房、换药室、治疗室、注射室)
- TCASWSS 025-2024 老年大学课程设置规范
- 小学道德与法治课程标准与教材研究 课件 第七章 法治教育
- JJG 633-2024气体容积式流量计
- 电机制造行业的竞争对手分析
- 广西失败企业案例分析报告
- 湖南建设工程施工阶段监理服务费计费规则
- 【基层版】中国房颤中心认证标准
- 磨工技能试卷及答案
- 稀土铝合金电缆项目可行性研究报告
- 会展行业的薪资分析
评论
0/150
提交评论