第十四章VisualC面向对象编程.ppt

上传人:sccc 文档编号:4784975 上传时间:2023-05-14 格式:PPT 页数:22 大小:247.02KB
返回 下载 相关 举报
第十四章VisualC面向对象编程.ppt_第1页
第1页 / 共22页
第十四章VisualC面向对象编程.ppt_第2页
第2页 / 共22页
第十四章VisualC面向对象编程.ppt_第3页
第3页 / 共22页
第十四章VisualC面向对象编程.ppt_第4页
第4页 / 共22页
第十四章VisualC面向对象编程.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第十四章VisualC面向对象编程.ppt》由会员分享,可在线阅读,更多相关《第十四章VisualC面向对象编程.ppt(22页珍藏版)》请在三一办公上搜索。

1、第十四讲:Visual C+面向对象编程,杨章伟e-mail:,课程内容安排,面向对象技术基本概念对象和类对象的属性和方法封装、继承和多态 Visual C+面向对象程序设计 综合练习思考和习题,面向对象技术基本概念,传统的软件开发技术(如结构化技术)是采用自顶向下的思想指导程序设计,即将目标划分为若干子目标,子目标再进一步划分下去,直到目标能被程序设计实现为止。面向对象技术根据现实生活中的具体实体,将程序的实现分解为一个一个具体对象的实现,这是更符合人的思维方式的一种方法。比如,在生产一辆汽车的过程中,将组成汽车的各个零件都先生产出来,再拼合成汽车,这就是面向对象技术,如图14-1所示。,面

2、向对象程序设计语言,最早出现的面向对象程序设计语言是Simula语言。该语言是1967年挪威科学家Ole-Johan Dahl和Kristen Nygaard正式发布的。其引入了所有后来面向对象程序设计语言所遵循的基础概念,例如对象、类、继承等。随后,比较经典的面向对象程序设计语言有SmallTalk、C+及Java等。总体来说,面向对象的程序设计语言有如下的一些特点。访问控制。在C+中,类有私有的(private)、保护的(protected)和公有的(public)3种访问机制。封装:将一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象继承性。通过对已有对象进行增

3、加或部分修改的方法建立新的对象。多态性。多态性意味着存在多种形式,能使人们在程序中激活任何属于某一类的成员函数。,对象,面向对象技术不同于传统的结构化技术,主要体现在其使用对象来进行程序开发。对象(Object),是指包含数据及其操作的实体,也即在传统的数据结构中加入一些过程,使用这些过程来赋予对象对数据的操作功能,这些过程就是后面要提到的成员函数,如图14-2所示。,在现实世界中,对象指的就是具体的事物,例如:飞机、汽车、人等。每个对象都含有自己的内部状态和行为,例如人具有名字、身高、体重等内部状态,也具有走路、吃饭等行为。在面向对象的概念中,将对象的内部状态称为属性,将其行为称为方法或事件

4、。对象之间的联系通过消息来传递,消息机制是对象间相互联系和相互作用的方式。说明:在Visual C+中,整个应用程序可以是一个对象,对象也是应用程序的一个部分,例如控件和图表等,类,类(Class),是指具有相似内部状态和行为的实体的集合。在类的构造过程中,有由特殊到一般的归纳法和由一般到特殊的演绎法两种方法。在归纳的过程中,从一个个具体的事物中把共同的特征抽取出来,形成一个一般的概念,即“归类”。例如:人、狮子、老鹰等,因为其都能动,所以将其归类为动物,如图14-3所示。,封装,封装是面向对象编程思想中的重要特性之一,其作用在于定义对象和操作,只提供抽象的接口,并隐藏其具体实现。封装的结果是

5、类,也即把有相似属性(成员变量)、操作(成员函数)的事物绑在一起处理(即一个类)。例如,为了方便管理公司职工,可以给职工写一个类,该类的属性可以有年龄、性别、姓名、入职日期等,操作可以有开除、调动等,这就实现了封装,如图14-8所示。,例如,将时钟的数据和功能封装起来,构成一个时钟类。按C+的语法,时钟类的声明如下:class Clock public:/公共成员,用作外部接口void SetTime(int NewH,int NewM,int NewS);void ShowTime();private:/私有成员,外部无法访问 int Hour;int Minute;int Second;,

6、继承,继承是面向对象程序设计的又一个重要概念,其可以将现实生活的概念对应到面向对象的程序逻辑中。例如,车是一个类,具有一些公共的性质;而汽车也是一类,但其属于车,所以汽车是继承于车的,而奔驰汽车又继承与汽车,如图14-9所示。,一个类(派生类、子类)是从另一个类(基类、父类)派生而来,派生类继承了基类的所有特性。在C+中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。一般来说,继承有3种方式。公有继承:也称为public继承类型。保护继承:也称为protected继承类型。私有继承:也称为private继承类型。,继承类型与

7、成员类型的继承关系,根据继承的不同类型,基类的成员在派生类中的访问控制受继承类型的限制,具体限制如表14-2所示。,多态,多态性也是面向对象程序设计的重要特征之一,多态性是指发出同样的消息被不同类型的对象接收时导致完全不同的行为。例如,动物都有吃的行为,而羊和狼吃的方式和内容都不一样,如图14-10所示。,Visual C+面向对象程序设计,Visual C+6.0不仅仅是一个编译器,更是一个全面的应用程序开发环境,使用该软件可以充分利用具有面向对象特性的C+来开发出专业级的Windows应用程序。,类的定义,C+语言中类的定义语法为:class 类名称public|protect|priva

8、te:成员数据类型 成员名称;成员函数;下面是一个简单的类(class)的定义,该类没有定义函数,class student public:int number;char name10;int age;,类的继承,前面的面向对象基础理论中提到了,类是可以继承(Inherit)的,也即基于现有的类再创建新类。此处假定类B继承了类A,那么,则称A为基类(Base Class,也叫父类),B为派生类(Derived Class,也叫子类)。派生类不但拥有自己新的成员变量和成员函数,还可以拥有基类的成员变量和成员函数。一个派生类可以只继承一个类,也可以继承多个类,这种情况则称为多重继承。,单一继承是最

9、普通的一种继承形式,在该继承形式中,派生类仅有一个基类,继承的派生类定义方法如下:class 派生类名:访问权限 基类名称.;例如,要实现类B与类A的继承关系,在定义类B之前必须已定义了类A,并用如下的格式定义类B。class B:public或private A.;,多重继承是指一个类可以从多个基类中派生出来。在派生类由多个基类派生出来的多重继承模式中,基类是用基类表语法成份来说明的,多重继承的语法与单一继承很类似,只需要在声明继承的多个类之间加上逗号来分隔,如下定义形式:class 派生类名:访问权限 基类名称,访问权限 基类名称,访问权限 基类名称;例如B类是由类C和类D派生的,声明如下

10、:class B:public C,public D,虚函数与多态性,在面向对象的程序设计中,经常用到类的继承,目的在于保留基类的某种特性,但并不是所有基类的特性都适合于派生类,也就是说,这个派生类并不想继承基类的所有内容,因此,引出了虚(Virtual)函数的概念。利用Virtual函数的特性可以让类只具有类型而没有实际操作内容,形成抽象类。这种类不用来声明也不能声明对象,只为了让其他类继承形成该类的基本类型。例如:class CAnimalpublic:void eat();virtual void breathe();,综合练习,写出如下程序代码运行后的输出。01#include ios

11、tream.h02class Student 0304private:0506public:07void Output();08Student()0910cout1endl;1112 Student()13 14 cout”2endl;15 16;17void Student:Output()1819cout3endl;2021void main()2223Student s;24s.Output();25,思考和习题,举例说明现实生活中类和对象的关系,并说明类和对象分别所有的属性和方法,以及这些属性和方法之间的关系。用Visual C+的语法定义一个类,要求包含若干数据成员和成员函数。创建一个person类,属性包括姓名、性别、出生日期。然后从person类派生出一个教师类,新增加的属性为职称。并要求定义相应的设置属性的成员函数和获取信息的成员函数。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号