《类和对象 (2)精选文档.ppt》由会员分享,可在线阅读,更多相关《类和对象 (2)精选文档.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、类和对象类和对象本讲稿第一页,共三十二页2本章主要内容本章主要内容l面向过程与面向对象的思想面向过程与面向对象的思想l类的声明类的声明l类的成员类的成员l类的成员访问权限类的成员访问权限l对象对象2本讲稿第二页,共三十二页本章目标本章目标l了解面向对象思想了解面向对象思想l掌握类的声明方式掌握类的声明方式l理解类的成员组成理解类的成员组成l理解类的成员访问权限理解类的成员访问权限l掌握类的成员函数的定义格式掌握类的成员函数的定义格式l掌握访问对象中成员的方法掌握访问对象中成员的方法33本讲稿第三页,共三十二页4本章主要内容本章主要内容l面向过程与面向对象的思想面向过程与面向对象的思想l类的声明
2、类的声明l类的成员类的成员l类的成员访问权限类的成员访问权限l对象对象本讲稿第四页,共三十二页5回顾:面向过程的设计方法回顾:面向过程的设计方法5本讲稿第五页,共三十二页6面向对象的方法面向对象的方法6本讲稿第六页,共三十二页常见的英文缩写(了解)常见的英文缩写(了解)lOO:面向对象面向对象lOOP:面向对象程序设计面向对象程序设计lOOA:面向对象分析面向对象分析lOOT:面向对象测试面向对象测试l详情参看详情参看237页页77本讲稿第七页,共三十二页面向对象的几个基本概念面向对象的几个基本概念l类类l对象对象l抽象抽象l封装封装l继承继承l多态性多态性8OO的三大基本特征的三大基本特征本
3、讲稿第八页,共三十二页9本章主要内容本章主要内容l面向过程与面向对象的思想面向过程与面向对象的思想l类的声明类的声明l类的成员类的成员l类的成员访问权限类的成员访问权限l对象对象本讲稿第九页,共三十二页结构体结构体struct Student string name;int age;1010本讲稿第十页,共三十二页类:类:lclass Studentll string name;l int age;l;11本讲稿第十一页,共三十二页12类的声明形式类的声明形式类是一种自定义数据类型,声明形式:类是一种自定义数据类型,声明形式:class 类名称类名称 private:私有成员私有成员 publ
4、ic:公有成员公有成员;本讲稿第十二页,共三十二页13抽象实例抽象实例学生类学生类l数据抽象:数据抽象:string name;int age;l代码抽象:代码抽象:Set(),display()13本讲稿第十三页,共三十二页14抽象实例抽象实例学生类学生类class Student public:string name;/数据成员数据成员 int age;void Set()/成员函数成员函数 略略 void display()略略;/注意最后的注意最后的“;”号号14本讲稿第十四页,共三十二页15本章主要内容本章主要内容l面向过程与面向对象的思想面向过程与面向对象的思想l类的声明类的声明l
5、类的成员类的成员l类的成员访问权限类的成员访问权限l对象对象15本讲稿第十五页,共三十二页16c+中的类中的类l类是具有相同属性和行为的一组对象类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括供了统一的抽象描述,其内部包括属属性性和和行为行为两个主要部分。两个主要部分。l利用类易于编写大型复杂程序,其模利用类易于编写大型复杂程序,其模块化程度比块化程度比C中采用函数更高。中采用函数更高。16本讲稿第十六页,共三十二页17类的成员类的成员class Student public:string name;/数据成员数据成
6、员 int age;void Set()/成员函数成员函数 略略 void display()略略;/注意最后的注意最后的“;”号号17本讲稿第十七页,共三十二页18数据成员数据成员l与一般的变量声明相同,但需要将它与一般的变量声明相同,但需要将它放在放在类类的声明体中。的声明体中。18本讲稿第十八页,共三十二页19成员函数成员函数l在类中说明原形,可以在类外给出函数在类中说明原形,可以在类外给出函数体实现,并在函数名前使用类名加以限体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形定。也可以直接在类中给出函数体,形成内联成员函数。成内联成员函数。l允许声明重载函数和带默认形
7、参值的函允许声明重载函数和带默认形参值的函数数19本讲稿第十九页,共三十二页20内联成员函数内联成员函数l为了提高运行时的效率,对于较简单为了提高运行时的效率,对于较简单的函数可以声明为内联形式。的函数可以声明为内联形式。l内联函数体中不要有复杂结构(如循内联函数体中不要有复杂结构(如循环语句和环语句和switch语句)。语句)。l在类中声明内联成员函数的方式:在类中声明内联成员函数的方式:将函数体放在类的声明中。将函数体放在类的声明中。使用使用inline关键字声明成员函数。关键字声明成员函数。20本讲稿第二十页,共三十二页21内联成员函数举例内联成员函数举例(一一)class Point
8、public:void Init(int initX,int initY)X=initX;Y=initY;int GetX()return X;int GetY()return Y;private:int X,Y;21本讲稿第二十一页,共三十二页22内联成员函数举例内联成员函数举例(二二)class Pointprivate:int X,Y;public:inline void Init(int initX,int initY);inline int GetX();inline int GetY();;22本讲稿第二十二页,共三十二页inline void Point:Init(int ini
9、tX,int initY)X=initX;Y=initY;inline int Point:GetX()return X;inline int Point:GetY()return Y;/注:注:声明里面有了声明里面有了inline关键字,定义函数时可以关键字,定义函数时可以 省略掉省略掉inline关键字关键字2523本讲稿第二十三页,共三十二页24本章主要内容本章主要内容l面向过程与面向对象的思想面向过程与面向对象的思想l类的声明类的声明l类的成员类的成员l类的成员访问权限类的成员访问权限l对象对象24本讲稿第二十四页,共三十二页25公有类型成员公有类型成员(public)在关键字在关键字
10、public后面声明,它们是类后面声明,它们是类与外部的接口,任何外部函数都可以访与外部的接口,任何外部函数都可以访问公有类型数据和函数。问公有类型数据和函数。25本讲稿第二十五页,共三十二页26私有类型成员私有类型成员(private)在关键字在关键字private后面声明,只允许后面声明,只允许本本类类中的函数访问,而类外部的任何函中的函数访问,而类外部的任何函数都不能访问。数都不能访问。如果紧跟在类名称的后面声明私有成员,则如果紧跟在类名称的后面声明私有成员,则关键字关键字privateprivate可以省略。可以省略。26本讲稿第二十六页,共三十二页27保护类型保护类型(protect
11、ed)与与private类似,其差别表现在继承与类似,其差别表现在继承与派生时对派生类的影响不同,第十一章派生时对派生类的影响不同,第十一章讲。讲。27本讲稿第二十七页,共三十二页28本章主要内容本章主要内容l面向过程与面向对象的思想面向过程与面向对象的思想l类的声明类的声明l类的成员类的成员l类的成员访问权限类的成员访问权限l对象对象28本讲稿第二十八页,共三十二页29对象对象l类的对象是该类的某一特定实体,即类的对象是该类的某一特定实体,即类类型的变量。类类型的变量。l声明形式:声明形式:类名类名 对象名;对象名;l例:例:Student stu1;/常用方法常用方法29本讲稿第二十九页,
12、共三十二页定义对象的方法定义对象的方法第一种:先声明类类型,再定义对象第一种:先声明类类型,再定义对象lclass Student stu1;lStudent stu1;30等效30本讲稿第三十页,共三十二页定义对象的方法定义对象的方法l第二种:声明类类型的同时定义对象第二种:声明类类型的同时定义对象 class student private:string name;int age;stu1,stu2;31本讲稿第三十一页,共三十二页访问对象中成员的访问对象中成员的3种方法:种方法:l1、通过对象名和成员运算符访问对象中成员、通过对象名和成员运算符访问对象中成员l 对象名对象名.成员名成员名l 例:例:stu1.name;stu1.set();l2、通过指向对象的指针访问对象中成员、通过指向对象的指针访问对象中成员l 例:例:Student stu1,*p;l p=&stu1;l cout name endl;l3、通过对象的引用变量访问对象中的成员、通过对象的引用变量访问对象中的成员l 例:例:Student stu1;l Student&stu2=stu1;l (stu1,stu2共占同一段存储单元共占同一段存储单元)。3232本讲稿第三十二页,共三十二页