- 2
- 0
- 约3.16万字
- 约 81页
- 2017-04-01 发布于四川
- 举报
谭浩强“C程序的设计”演示课件第8章节
第3篇基于对象的程序设计 第8章 类和对象 第9章 关于类和对象的进一步讨论 第10章 运算符重载 第8章 类和对象 8.1 面向对象程序设计方法概述 8.2 类的声明和对象的定义 8.3 类的成员函数 8.4 对象成员的引用 8.5 类的封装性和信息隐蔽 8.6 类和对象的简单应用举例 8.1 面向对象程序设计方法概述 到目前为止,我们介绍的是C++在面向过程的程序设计中的应用。对于规模比较小的程序,编程者可以直接编写出一个面向过程的程序,详细地描述每一瞬时的数据结构及对其的操作过程。但是当程序规模较大时,就显得力不从心了。C++就是为了解决编写大程序过程中的困难而产生的。 8.1.1 什么是面向对象的程序设计 面向对象的程序设计的思路和人们日常生活中处理问题的思路是相似的。在自然世界和社会生活中,一个复杂的事物总是由许多部分组成的。 当人们生产汽车时,分别设计和制造发动机、底盘、车身和轮子,最后把它们组装在一起。在组装时,各部分之间有一定的联系,以便协调工作。 这就是面向对象的程序设计的基本思路。 为了进一步说明问题,下面先讨论几个有关的概念。 1. 对象 客观世界中任何一个事物都可以看成一个对象(object)。 对象可大可小。对象是构成系统的基本单位。 任何一个对象都应当具有这两个要素,即属性(attribute)和行为(behavior),它能根据外界给的信息进行相应的操作。一个对象往往是由一组属性和一组行为构成的。一般来说,凡是具备属性和行为这两种要素的,都可以作为对象。 在一个系统中的多个对象之间通过一定的渠道相互联系,如图8.1示意。要使某一个对象实现某一种行为(即操作),应当向它传送相应的消息。对象之间就是这样通过发送和接收消息互相联系的。 图8.1 图8.2 面向对象的程序设计采用了以上人们所熟悉的这种思路。使用面向对象的程序设计方法设计一个复杂的软件系统时,首要的问题是确定该系统是由哪些对象组成的,并且设计这些对象。在C++中,每个对象都是由数据和函数(即操作代码)这两部分组成的,见图8.2。数据体现了前面提到的“属性”,如一个三角形对象,它的3个边长就是它的属性。函数是用来对数据进行操作的,以便实现某些功能,例如可以通过边长计算出三角形的面积,并且输出三角形的边长和面积。计算三角形面积和输出有关数据就是前面提到的行为,在程序设计方法中也称为方法(method)。调用对象中的函数就是向该对象传送一个消息(message),要求该对象实现某一行为(功能)。 2. 封装与信息隐蔽 可以对一个对象进行封装处理,把它的一部分属性和功能对外界屏蔽,也就是说从外界是看不到的,甚至是不可知的。 这样做的好处是大大降低了操作对象的复杂程度。 面向对象程序设计方法的一个重要特点就是“封装性” (encapsulation),所谓“封装”,指两方面的含义: 一是将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,互不干扰。二是将对象中某些部分对外隐蔽,即隐蔽其内部细节,只留下少量接口,以便与外界联系,接收外界的消息。这种对外界隐蔽的做法称为信息隐蔽(imformation hiding)。信息隐蔽还有利于数据安全,防止无关的人了解和修改数据。 C++的对象中的函数名就是对象的对外接口,外界可以通过函数名来调用这些函数来实现某些行为(功能)。这些将在以后详细介绍。 3. 抽象 在程序设计方法中,常用到抽象(abstraction)这一名词。抽象的过程是将有关事物的共性归纳、集中的过程。 抽象的作用是表示同一类事物的本质。C和C++中的数据类型就是对一批具体的数的抽象。 对象是具体存在的,如一个三角形可以作为一个对象,10个不同尺寸的三角形是10个对象。如果这10个三角形对象有相同的属性和行为,可以将它们抽象为一种类型,称为三角形类型。在C++中,这种类型就称为“类(class)”。这10个三角形就是属于同一“类”的对象。类是对象的抽象,而对象则是类的特例,或者说是类的具体表现形式。 4. 继承与重用 如果在软件开发中已经建立了一个名为A的“类”,又想另外建立一个名为B的“类”,而后者与前者内容基本相同,只是在前者的基础上增加一些属性和行为,只需在类A的基础上增加一些新内容即可。这就是面向对象程序设计中的继承机制。利用继承可以简化程序设计的步骤。 “白马”继承了“马”的基本特征,又增加了新的特征(颜色),“马”是父类,或称为基类,“白马”是从“马”派生出来的,称为子类或派生类。 C++提供了继承机制,采用继承的方法可以很方便地利用一个已有的类建立一个新的类。这就是常说的“软件重用”(so
您可能关注的文档
- 说课演示课件[秦世凤].ppt
- 语音与图像集成电路.ppt
- 说课稿-物质燃烧的条件.ppt
- 说课演示课件外研版英语一年级下册Ilìkefootball演示课件.ppt
- 说计算机应用高中考试方向班语文课程.ppt
- 说理[写阐释句]改.ppt
- 诸子散文之孟子-墨子-韩非子.ppt
- 请观赏济南的冬天图片.ppt
- 诸城二轮复习思路古代科技文化.ppt
- 说课演示课件进出口贸易实务.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 2025年自来水供应专属承包合同样本版.docx VIP
- 2022化工安全与环保第二版课后题答案最新版(完整版).docx VIP
- ASUS华硕主板大师系列Z97-A 用户使用手册 (繁体中文).pdf
- 智能金融:AI 驱动的金融变革.pptx
- 人工智能在心血管无创影像中的应用:前沿技术与临床价值.pdf VIP
- 2025年氢燃料电池在数据中心储能应用趋势.docx
- 2026年中国铁路上海局集团有限公司招聘普通高校毕业生1236人备考题库及答案详解(考点梳理).docx VIP
- 井工煤矿复工复产开工第一课教案.docx VIP
- 社区居务监督培训课件.ppt VIP
- 心灵终结单位全代码.doc VIP
原创力文档

文档评论(0)