欢迎来到天天文库
浏览记录
ID:57055423
大小:1.77 MB
页数:153页
时间:2020-07-30
《c++ 面向对象程序设计 第七章课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++属于混合型面向对象程序设计语言,所谓混合,意即在面向过程语言的基础上增加面向对象的描述和处理机制,例如增加类类型以支持封装、继承和多态等面向对象基本要素的实现。1~6章主要讲述C++的过程化部分,该部分除了个别功能,例如I/O操作(插入运算和提取运算)、内存操作(new和delete)之外,绝大部分内容与C语言是基本兼容的。第七章类和数据抽象从本章起,我们将进入C++的面向对象处理部分,主要讨论:面向对象的基本概念,类类型的定义、对象的声明,构造函数与析构函数,友元,运算符重载,继承、多态的实现等。本章的主要内容面向对象的基本概
2、念(面向对象的含义、对象和类的定义)。从结构类型到类类型。类类型定义对象声明。成员函数的声明和调用。本章的重点、难点面向对象的基本概念。类类型定义和对象声明的语法。成员函数及其调用。对象声明。强调刻画对象性质的数据及行为的紧密联系。即指封装技术。把软件系统看成是一系列离散对象的集合。也即,将对象作为系统的基本单元。7.1面向对象的基本概念1.面向对象的基本含义在强调事物封装性和相对独立性的同时,还必须充分考虑存在于同一系统中的各个事物之间的联系,也即实体关系。主要的实体关系有:泛化、依赖、关联。1.面向对象的基本含义(续)在强调事物封
3、装性和相对独立性的同时,还必须充分考虑存在于同一系统中的各个事物之间的联系,也即实体关系。泛化(generalization)关系是一种“特殊/一般”关系,也即特殊事物和一般事物之间的关系。例如:学生和研究生、本科生之间的关系。利用事物之间的泛化关系可以建立继承模型和继承机制。1.面向对象的基本含义(续)主要的实体关系有:泛化、依赖、关联。关联(association)是事物之间的一种结构关系,更多地涉及到事物之间的相互联系、相互作用和引用,具有动态特征。例如:银行和帐户之间的关系(银行拥有帐户)。依赖(dependency)关系是两
4、个事物间的语义关系,其中一个事物(规格说明)发生变化会影响另一事物。例如:课程调度(排课)和课程之间的关系。2.面向对象的基本思想传统的软件系统是由一个函数(或过程)集合和一个被这些函数或过程所操纵的数据集组成的。其静态结构模型如下图所示:函数集f1f2f3fnABCDBMS数据集……(1)传统的软件系统构成及其存在的问题2.面向对象的基本思想(续)从该模型可以看出,在模型所抽象的系统运行时,发生以下动作:(1)f1读取数据A并将处理结果写到数据B中。(2)f2读取数据A并将处理结果写到数据C中。问题:在这种将事物的数据与行为分离的模
5、式下,当数据结构的一部分改变时,我们必须做什么?问题的答案:必须检查每一个函数,以确定数据结构的变化是否使函数受到干扰。2.面向对象的基本思想(续)存在的问题(1)为了新结构而改动的函数可能对系统的其他部分有副作用。(2)维护的代价非常高。(2)面向对象模型——“鸡蛋”模型函数(事物的行为)和它们所需存取的数据(事物的属性)被封装在称为对象的包内(信息隐蔽),其它对象的函数不能直接访问这些数据。对应的模型如下图所示:2.面向对象的基本思想(续)函数(事物的行为)和它们所需存取的数据(事物的属性)被封装在称为对象的包内(信息隐蔽),其它
6、对象的函数不能直接访问这些数据。对应的模型如下图所示:f1f2f3…可以将对象看成是鸡蛋:蛋黄是数据结构,蛋清由访问数据的函数组成,蛋壳代表明显可见的操作标记。蛋壳作为接口,隐蔽了函数和数据结构的实现。如果数据结构改变了,维护人员只需检查对应的鸡蛋的蛋清,维护被限制在局部范围。如果实现变化了,其他对象不会受到影响。2.面向对象的基本思想(续)f1f2f3…面向对象的基本思想就是封装:数据和处理过程结合在一起并隐蔽在接口后面。在封装的情况下,必须允许对象之间传递消息,获得对方的服务,以获取被封装的数据。模型的改进如右图所示:f1f2f3
7、…3.对象和类(Object&Class)对象的定义系统中的一个对象对应于客观世界中的一个事物,它是构成系统的一个基本单位。例如:教学管理系统中的某些学生、某些老师、某些课程,他们都是对象。定义:一个对象是由一组属性和对这组属性进行操作的一组服务构成的。3.对象和类(续)定义:一个对象是由一组属性和对这组属性进行操作的一组服务构成的。属性是用来描述对象静态特征的一个数据项,也叫对象特性,一个对象通常具有多个属性;例如:学生的姓名、学号,课程编号、课程名称等。服务是用来描述对象动态特征(行为)的一个操作,一个对象通常能提供多种操作(服务
8、)。操作通常用函数或过程或方法实现。例如:学生具有选课的行为、教师具有报送成绩的行为,课程提供增、删、改、查等服务。类的定义一组具有相同性质(属性和操作)的对象的抽象。例如:教学系统中的所有学生都具有共性,比如都有学号、
此文档下载收益归作者所有