收藏 分享(赏)

理解C++中的类和对象.ppt

上传人:weiwoduzun 文档编号:4224543 上传时间:2018-12-16 格式:PPT 页数:29 大小:559.51KB
下载 相关 举报
理解C++中的类和对象.ppt_第1页
第1页 / 共29页
理解C++中的类和对象.ppt_第2页
第2页 / 共29页
理解C++中的类和对象.ppt_第3页
第3页 / 共29页
理解C++中的类和对象.ppt_第4页
第4页 / 共29页
理解C++中的类和对象.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、类和对象,C+程序设计课程,主讲:史永哲,学习内容,一、类和对象的概念 二、类和对象的定义 三、类和对象的使用 四、总结,1、面向对象 面向对象(OO:Oriented Object)是软件行业的新术语,它是为了解决70年代的“软件危机”而出现的新的软件开发方法。 面向对象是指一种程序设计范型,同时也是一种程序开发的方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。,一、类和对象的概念,面向过程:强调处理问题的过程。,面向对象:利用对象间的消息传递来驱动程序的执行。,优点:真实表现客观世界,对象间的关系清晰,对象间的消息处理高效。,不足之处:复用性较差

2、,无法真实描绘客观世界。,一、类和对象的概念,一、类和对象的概念,2、类和对象的定义:对象是对问题域中客观存在的事物的抽象,它是一组属性和这些属性上的操作的封装体。类是具有相同属性和操作的一组对象的统一抽象的描述 。类是对象的模板,对象是类的实体。,一、类和对象的概念,对象=数据+数据上的操作程序 = (对象+对象+对象+) + 消息消息:面向对象中,我们称一个对象对另一个对象施加的操作为消息(message)。如:对汽车对象,点火、换档、踩油门、踩刹车等,这些施加操作的过程,称为发送消息。,对象具有抽象性、封装性、继承性、多态性四个特点。,一、类和对象的概念,(1)对象的抽象性抽象是从众多的

3、事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。程序设计中对象的抽象有两方面,一是对数据的抽象,即是对象本身属性的抽象。二是过程的抽象,即是对象本身行为的抽象。,一、类和对象的概念,(2)对象的封装性封装有两个含义:一是把对象的全部属性和操作结合在一起,形成一个不可分割的整体对象,二是信息隐藏,即这个整体对外尽量隐藏它的细节,只公布一个有限界面,通过这个界面和其它对象交互。,一、类和对象的概念,(3)对象的继承性特殊类的对象获得一般类的全部属性与操作,称做特殊类对一般类的继承。被继承的类叫父类或基类,继承父类的类叫子类或派生类。,一、类和对象的概念,(4)对象的多态性对象的多态性指基类

4、中定义的属性或操作被派生类继承后,可以具有不同的数据类型或表现出不同的行为。,一、类和对象的概念,例:圆形(circle)的数据抽象:int x,y;double r;行为抽象:setx();sety();setr();draw();,一、类和对象的概念,二、类和对象的定义,1、类定义形式: class 类名 private:私有类成员;public:公有类成员;protected:保护类成员; ;,二、类和对象的定义,例2.1 定义一个类 class sample private int x; public:void fun() ; ;,二、类和对象的定义,例2.2 定义一个类(类外实现成员

5、函数) class sample private int x; public:void fun(); ; /*类外成员函数的实现*/ void sample:fun() ; ,二、类和对象的定义,类外函数实现的格式为: 函数类型 类名:函数名(参数表) 语句组 ; 其中,运算符“:”称为作用域分辨符,它指出“函数名”是属于“类名”的成员函数。,二、类和对象的定义,方法1: class A public:int r, t; ; A x, y;,方法2: class Bint I, j; public:void Setdata(int a, int b) I=a; j=b;void print(v

6、oid)coutItjn; b1, b2;,二、类和对象的定义,2、定义对象:,3、类中的构造函数: 构造函数是类的成员函数,在类内声明,可以在类体内或类体外实现。 构造函数名与类名相同。 构造函数无返回值。 构造函数在创建对象时,自动调用,不需要程序员写代码显式调用。,二、类和对象的定义,例:2.3#include class testpublic:test()cout “counstructor called n“;test obj1;void main() test obj1;输出结果为:counstructor called,二、类和对象的定义,构造函数的重载: 例:2.4#inclu

7、de class testpublic:test()cout “counstructor called n“;test(char * name)cout “counstructor called name=“name;test obj1;void main() test obj1;text obj2(“李平“); 输出结果为:counstructor called conustructor called name=李平,二、类和对象的定义,4、类中的析构函数 析构函数名为“”。如,Calendar类的析构函数名为Calendar。 没有参数和返回值。 析构函数不能重载。 当对象消亡时,系统回收

8、该对象所占用的内存空间前,析构函数会被自动调用。,二、类和对象的定义,例:class Boxpublic:Box() cout“distroy the object“ private:int width, length, depth; ; int main() Box b; delete b; 输出:distroy the object,二、类和对象的定义,5、类使用的几点说明: (1)在类的外部,只能访问类的公有成员,而不能访问类的私有成员或保护成员。若要访问类对象的私有成员,只能通过对象的公有成员函数来获取。 (2) 同类型的对象之间可以整体赋值,例如:rr=r,将对象r的所有成员依次赋给

9、对象rr的成员,这种赋值与对象的成员访问权限无关。 (3)对象用作函数的参数时,属于赋值调用;函数也可以返回一个对象。,二、类和对象的定义,应用:/类rectangle的定义 class rectangleprivate: float width,height;public: void setwidth(float x)width=x;void setheight(float y)height=y;,三、类和对象的使用,float area() return width*height; float perimeter() return 2*(width+height); ; static vo

10、id main() rectangle rect; rect.setwidth(45); /设置rectangle的宽度,三、类和对象的使用,rect.setheight(54.2);/设置rectangle的高度 cout“the area of rectangle is“rect.area() endl; /输出矩形面积 cout“the perimeter of rectangle is“ rect.perimeter()endl;/ 输出矩形周长 输出结果:the area of rectangle is 2926.8 the perimeter of rectangle is 198.4,三、类和对象的使用,1、介绍了面向对象的概念,给出了类和对象的定义,讲解了类四个特点 2、讲解了类和对象的定义方法,讲解了类成员的三种访问控制特点,给出了对象的两种创建方法,介绍了构造函数和析构函数及其应用 3、举实例说明面向对象的编程方法,四、小结,祝大家学习愉快! 谢谢大家!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报