欢迎来到天天文库
浏览记录
ID:50318758
大小:984.00 KB
页数:104页
时间:2020-03-08
《C++程序设计 教学课件 作者 郑莉第4章 类与对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1第4章类与对象清华大学郑莉2目录4.1对现实事物的模拟4.2类的设计4.3对象3第4章类与对象在我们熟悉的现实世界中,一切事物都是对象。对象可以是有形的,比如房屋、汽车;也可以是无形的,比如一项计划。对象可以是一个简单的个体,比如一个人;也可以由诸多其他对象组合而成,比如一个公司有多个部门,每个部门又由许多人组成。4第4章类与对象对类似的对象进行抽象,找出其共同属性,便构成一种类型。作为一种面向对象的程序设计语言,C++支持这种抽象。将抽象后的数据和函数封装在一起,便构成了C++“类”。本章介绍类和对象的基本知识,包括对现实事物的模拟、怎么设计类、有了类之后怎么使
2、用类的对象。54.1对现实事物的模拟抽象,指从众多事物中抽取出共同的性质和特征,而舍弃不同的性质和特征。根据抽象得到了共同的性质和特征,就可以对事物进行模拟。模拟,是指用计算机对现实事物的属性和行为进行模仿,并观察其行为的效果和属性的改变的一种方法。下面来看两个对现实事物进行抽象和模拟的例子:第4章类与对象64.1对现实事物的模拟例1:对人进行抽象和模拟。人共有的属性包括姓名、性别、年龄等,共有的功能包括听、说、吃等。可用三个基本数据类型来描述姓名、性别、年龄,用三个函数来描述人的听、说、吃。用C++的变量和函数可以将抽象后的人描述如下:属性抽象:char*name
3、;char*sex;intage;功能抽象:Listen();Talk();Eat();第4章类与对象74.1对现实事物的模拟例2:对水果进行抽象。水果具有重量、体积、是否新鲜的属性,也具有改变重量、改变体积、同时改变重量和体积、获取重量、是否新鲜等功能。对水果抽象后用C++的变量和函数描述如下:属性抽象:char*color;floatweight;floatvolume;boolfresh;功能抽象:ChangeWeight();ChangeVolume();ChangeBoth();GetWeight();IsFresh();第4章类与对象84.1对现实事物的
4、模拟从不同的角度、所研究事物的侧重点来进行抽象和模拟,会得到不同的抽象结果。在实际应用中,我们应该根据自己研究事物的侧重点,对拟解决的问题,从最合适的角度对事物进行抽象和模拟。C++是一种面向对象的语言,它支持这种抽象和模拟。第4章类与对象94.2类的设计在C++中,使用类这一概念来对事物进行抽象和模拟。C++中的类体现了面向对象语言中的抽象性、封装性、继承性、多态性等特点。类是一种复杂的数据类型,它把逻辑上相关的函数与数据封装在一起,深刻反映了这些相关的函数和数据之间的关系。第4章类与对象104.2.1类的定义格式类的定义一般分为两部分:对属性的定义和对功能的定义
5、。类中定义的属性称为这个类的数据成员,类中定义的函数称为这个类的函数成员。有时候也称函数成员为成员函数。4.2类的设计114.2.1类的定义格式定义类的一般格式如下:class类名称{public:公共型属性和函数private:保护型属性和函数protected:私有型属性和函数}4.2类的设计124.2.1类的定义格式“public”、“protected”、“private”是关键字,表明了对类的成员的访问权限。这3个关键字在类的定义格式中的出现顺序是任意的,而且每个关键字可以不出现、出现一次或多次。每一个关键字限制的属性和函数也可以有任意多个。4.2类的设计
6、134.2.1类的定义格式为之前抽象后的水果定义为一个类Fruit:4.2类的设计classFruit//定义类Fruit{private://Fruit类的私有型成员char*color;floatvolume;floatweight;boolfresh;//Fruit类的数据成员144.2.1类的定义格式4.2类的设计public://Fruit类的公共型成员//以下都是Fruit类的函数成员voidChangeWeight(floatnewWeight);voidChangeVolume(floatnewVolume);voidChangeBoth(float
7、newWeight,floatnewVolume);floatGetWeight();boolIsFresh();}154.2.2数据成员类的数据成员的说明包括该数据成员的类型和它的名称。一般的,类的数据成员常常设置为private访问权限的,以保证不会被外部的函数或者其他类的函数随意修改。可以将类和数据类型看作是C++中非常相似的两种概念。在类中,可以将其它类的变量定义为该类的数据成员。4.2类的设计164.2.2数据成员例如,在类B中定义类型为A的数据成员a:4.2类的设计classA//定义类A{private://类A的私有成员inti;};classB
此文档下载收益归作者所有