网站大量收购独家精品文档,联系QQ:2885784924

面向对象技术基础.pptVIP

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象技术基础

第8章 面向对象技术基础 欢迎开启面向对象设计的大门,在第1章中已经简要介绍过面向对象设计的基本理念,本章将具体讲述类和对象的概念。在前面的章节中,程序是由一个个函数组成的,是结构化的编程方法。从本章开始,编写的程序是由对象组成的,将要学习用C++语言进行面向对象的程序设计,当然,面向对象设计也离不开函数等前面讲述的基础知识。 8.1 面向对象基本概念 “对象”(object)是个抽象的概念,现实世界中的任何事物都可以看成是对象,动物、植物、摩托车、汽车等等都是对象,对象之间有很大的差异,如人和汽车,但有的对象间有相似之处,比如摩托车和自行车,它们有共同的特征(有轮子),同样的功能(人的交通工具),也有不同的特征,如“轮子个数”,“车子重量”等等,基于此,可将“有轮子”,“可更换轮胎”、“能作为人的交通工具”抽象成一个类别(class),可称之为“车”类,摩托车和自行车是该类别的对象。 类的提取往往是从两个方面来考虑的,一是特征(C++常称为“属性”)、另一个是功能(C++中常称为“行为”),具备类中定义的“属性”和“行为”的对象都是该类的对象,因此,我们可以说,电动车也是“车”类的对象。 8.1.1 类的概念 类和对象的关系与 “结构”和“结构体变量”的关系相似。 C++用类来描述对象,类是对现实世界中相似事物的抽象,同是“双轮车”的摩托车和自行车,有共同点,也有许多不同点。“车”类是对摩托车、自行车、汽车等相同点和不同点的提取与抽象,如所示。 类的定义分为两个部分:数据(相当于属性)和对数据的操作(相当于行为)。从程序设计的观点来说,类就是数据类型,是用户定义的数据类型,对象可以看成某个类的实例(某个类的变量),类和对象的关系与前面介绍的“结构”和“结构体变量”的关系相似,但又有不同,在本章稍后类的定义一节中后具体说明这一问题。 8.1.2 类是分层的 每一大类中可分成若干小类,也就是说,类是分层的,如图8.2所示。可将所有的图形抽象成“图形”类,该类中共同的属性有很多,这里只取“颜色”这个属性,对所有图形而言,都可定义“显示”操作。同时,“图形”类可进一步分为“一维图形”类、“二维图形”类和其他类,根据形状的不同,“一维图形”类可进一步分为“直线”类和“折线”类,“二维图形”类又可分为“正方形”类和“圆”类。下层的类除了“继承”了上层类中定义的属性和行为外,还可增加新的属性和行为(如“圆”类相比“二维图形”类增加了“圆心”和“半径”属性,增加了“求面积”这一行为),甚至可以在下层类中重新定义上层类已定义的属性和行为(如“直线”类、“折线类”、“正方形”类和“圆”类中都重新定义了“图形”类中已定义的“显示”操作)。 8.1.3 类和对象的关系 对象需要从属性和行为两个方面进行描述,类是对象的封装。类的使用主要有以下几个步骤: 定义一个类,C++中,分别用数据成员和函数成员来表现对象的属性和行为。类的定义强调“信息隐藏”,将实现细节和不允许外部随意访问的部分屏蔽起来。因此,在类定义中,需要用public或private将类成员区分开(此外,还有protected型的数据成员,稍后会有详细介绍),外界不能访问程序的private成员,只能访问public数据成员,对象间的信息传送也只能通过public成员函数,保证了对象的数据安全。 类的实现,即进一步定义类的成员函数,使各个成员函数相互配合以实现接口对外提供的功能,类的定义和实现是由类设计者完成的。 通过该类声明一个属于该类的变量(即对象),并调用其接口(即public型的数据成员或函数成员),这是使用者的工作。 8.2 C++类的定义 先来看一下类是如何定义的,对一些通用的问题,前人已经定义好了很多的类,比如微软的MFC类库,程序员不必关心其内部细节,只要抱着“拿来主义”的态度就好,但对某些特殊问题来说,必须由自己提炼模型,进行类的定义。 8.2.1 类定义的基本形式 C++中使用关键字class定义一个类,其基本形式如下: class类名 { public: 公共成员函数 private: 私有成员函数 私有的数据成员定义 }; 8.2.2 类定义示例 对一台计算机来说,它有如下特征: 属性:品牌、价格。 方法:输出计算机的属性。 实现了computer类的定义: 8.2.3 class和struct class的定义看上去很像struct定义的扩展,事实上,类定义时的关键字class完全可以替换成struct,也就是说,第5章中介绍的结构体变量也可以有成员函数。class和struct的唯一区别在于:struct的默认访问方式是public,而class为private。 提示:通常使用class来定义类,而把struct用于只表示数据对象、没

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档