下载此文档

第08章 类和对象.ppt


文档分类:IT计算机 | 页数:约52页 举报非法文档有奖
1/52
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/52 下载此文档
文档列表 文档介绍
面向对象基本概念
“对象”(object)是个抽象的概念,现实世界中的任何事物都可以看成是对象,动物、植物、摩托车、汽车等等都是对象,对象之间有很大的差异,如人和汽车,但有的对象间有相似之处,比如摩托车和自行车,它们有共同的特征(有轮子),同样的功能(人的交通工具),也有不同的特征,如“轮子个数”,“车子重量”等等,基于此,可将“有轮子”,“可更换轮胎”、“能作为人的交通工具”抽象成一个类别(class),可称之为“车”类,摩托车和自行车是该类别的对象。
类的提取往往是从两个方面来考虑的,一是特征(C++常称为“属性”)、另一个是功能(C++中常称为“行为”),具备类中定义的“属性”和“行为”的对象都是该类的对象,因此,我们可以说,电动车也是“车”类的对象。
类的概念
C++用类来描述对象,类是对现实世界中相似事物的抽象,同是“双轮车”的摩托车和自行车,有共同点,也有许多不同点。“车”类是对摩托车、自行车、汽车等相同点和不同点的提取与抽象,如所示。
类的定义分为两个部分:数据(相当于属性)和对数据的操作(相当于行为)。从程序设计的观点来说,类就是数据类型,是用户定义的数据类型,对象可以看成某个类的实例(某个类的变量),类和对象的关系与前面介绍的“结构”和“结构体变量”的关系相似,但又有不同,在本章稍后类的定义一节中后具体说明这一问题。
类是分层的
每一大类中可分成若干小类,也就是说,类是分层的,。可将所有的图形抽象成“图形”类,该类中共同的属性有很多,这里只取“颜色”这个属性,对所有图形而言,都可定义“显示”操作。同时,“图形”类可进一步分为“一维图形”类、“二维图形”类和其他类,根据形状的不同,“一维图形”类可进一步分为“直线”类和“折线”类,“二维图形”类又可分为“正方形”类和“圆”类。下层的类除了“继承”了上层类中定义的属性和行为外,还可增加新的属性和行为(如“圆”类相比“二维图形”类增加了“圆心”和“半径”属性,增加了“求面积”这一行为),甚至可以在下层类中重新定义上层类已定义的属性和行为(如“直线”类、“折线类”、“正方形”类和“圆”类中都重新定义了“图形”类中已定义的“显示”操作)。
类和对象的关系
对象需要从属性和行为两个方面进行描述,类是对象的封装。类的使用主要有以下几个步骤:
定义类:C++中,分别用数据成员和函数成员来表现对象的属性和行为。类的定义强调“信息隐藏”,将实现细节和不允许外部随意访问的部分屏蔽起来。因此,在类定义中,需要用public或private将类成员区分开(此外,还有protected型的数据成员,后面课程会有介绍),外界不能访问程序的private成员,只能访问public数据成员,对象间的信息传送也只能通过public成员函数,保证了对象的数据安全。
实现类:即进一步定义类的成员函数,使各个成员函数相互配合以实现接口对外提供的功能,类的定义和实现是由类设计者完成的。
使用类:通过该类声明一个属于该类的变量(即对象),并调用其接口(即public型的数据成员或函数成员),这是使用者的工作。
C++类的定义
先来看一下类是如何定义的,对一些通用的问题,前人已经定义好了很多的类,比如微软的MFC类库,程序员不必关心其内部细节,只要抱着“拿来主义”的态度就好,但对某些特殊问题来说,必须由自己提炼模型,进行类的定义。
类定义的基本形式
C++中使用关键字class定义一个类,其基本形式如下:
class 类名
{
private:
私有成员变量和函数
protected:
保护成员变量和函数
public:
公共成员变量和函数
}; //不要漏写了这个分号;
类定义示例
对一台计算机来说,它有如下特征:
属性:品牌、价格。
方法:输出计算机的属性。
如下代码8-puter类的定义:
//
puter
{
private: //私有成员列表,这里的private可以省略
char brand[20];
float price; //不能在这里初始化,如float price=0是错误的
public: //公共成员列表(接口)
void print();
void SetBrand(char* sz);
void SetPrice(float pr);
};
class和struct
class的定义看上去很像struct定义的扩展,事实上,类定义时的关键字class完全可以替换成struct,也就是说,第5章中介绍的结构体变量也可以有成员函数。class和struct的唯一区别在于:struct的默认访问方式是publi

第08章 类和对象 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数52
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小318 KB
  • 时间2018-06-23