VisualC面向对象编程

上传人:ni****g 文档编号:576880259 上传时间:2024-08-20 格式:PPT 页数:22 大小:247KB
返回 下载 相关 举报
VisualC面向对象编程_第1页
第1页 / 共22页
VisualC面向对象编程_第2页
第2页 / 共22页
VisualC面向对象编程_第3页
第3页 / 共22页
VisualC面向对象编程_第4页
第4页 / 共22页
VisualC面向对象编程_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《VisualC面向对象编程》由会员分享,可在线阅读,更多相关《VisualC面向对象编程(22页珍藏版)》请在金锄头文库上搜索。

1、联系方式:北京源智天下科技有限公司第十四讲:第十四讲:Visual C+面向对象编程 杨章伟杨章伟e-mail:1-2北京源智天下科技有限公司联系方式:课程内容安排课程内容安排面向对象技术基本概念面向对象技术基本概念对象和类对象和类对象的属性和方法对象的属性和方法封装、继承和多态封装、继承和多态 Visual C+面向对象程序设计面向对象程序设计 综合练习综合练习思考和习题思考和习题 1-3北京源智天下科技有限公司联系方式:面向对象技术基本概念面向对象技术基本概念 传统的软件开发技术(如结构化技术)是采用自顶向下传统的软件开发技术(如结构化技术)是采用自顶向下的思想指导程序设计,即将目标划分为

2、若干子目标,子的思想指导程序设计,即将目标划分为若干子目标,子目标再进一步划分下去,直到目标能被程序设计实现为目标再进一步划分下去,直到目标能被程序设计实现为止。止。面向对象技术根据现实生活中的具体实体,将程序的实面向对象技术根据现实生活中的具体实体,将程序的实现分解为一个一个具体对象的实现,这是更符合人的思现分解为一个一个具体对象的实现,这是更符合人的思维方式的一种方法。比如,在生产一辆汽车的过程中,维方式的一种方法。比如,在生产一辆汽车的过程中,将组成汽车的各个零件都先生产出来,再拼合成汽车,将组成汽车的各个零件都先生产出来,再拼合成汽车,这就是面向对象技术,如图这就是面向对象技术,如图1

3、4-1所示。所示。1-4北京源智天下科技有限公司联系方式:1-5北京源智天下科技有限公司联系方式:面向对象程序设计语言面向对象程序设计语言 最早出现的面向对象程序设计语言是最早出现的面向对象程序设计语言是Simula语言。该语言是语言。该语言是1967年挪威科学家年挪威科学家Ole-Johan Dahl和和Kristen Nygaard正式正式发布的。其引入了所有后来面向对象程序设计语言所遵循的发布的。其引入了所有后来面向对象程序设计语言所遵循的基础概念,例如对象、类、继承等。基础概念,例如对象、类、继承等。随后,比较经典的面向对象程序设计语言有随后,比较经典的面向对象程序设计语言有Small

4、Talk、C+及及Java等。总体来说,面向对象的程序设计语言有如下的一等。总体来说,面向对象的程序设计语言有如下的一些特点。些特点。访问控制。在访问控制。在C+中,类有私有的(中,类有私有的(private)、保护的)、保护的(protected)和公有的()和公有的(public)3种访问机制。种访问机制。封装:将一组数据和与这组数据有关的操作集合组装在一起,封装:将一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象形成一个能动的实体,也就是对象继承性。通过对已有对象进行增加或部分修改的方法建立新继承性。通过对已有对象进行增加或部分修改的方法建立新的对象。的对象。

5、多态性。多态性意味着存在多种形式,能使人们在程序中激多态性。多态性意味着存在多种形式,能使人们在程序中激活任何属于某一类的成员函数。活任何属于某一类的成员函数。1-6北京源智天下科技有限公司联系方式:对象对象 面面向向对对象象技技术术不不同同于于传传统统的的结结构构化化技技术术,主主要要体体现现在在其其使使用用对对象象来来进进行行程程序序开开发发。对对象象(Object),是是指指包包含含数数据据及及其其操操作作的的实实体体,也也即即在在传传统统的的数数据据结结构构中中加加入入一一些些过过程程,使使用用这这些些过过程程来来赋赋予予对对象象对对数数据据的的操操作作功功能能,这这些些过过程程就就是

6、后面要提到的成员函数,如图是后面要提到的成员函数,如图14-2所示。所示。1-7北京源智天下科技有限公司联系方式:在现实世界中,对象指的就是具体的事物,例如:飞机、汽在现实世界中,对象指的就是具体的事物,例如:飞机、汽车、人等。每个对象都含有自己的内部状态和行为,例如车、人等。每个对象都含有自己的内部状态和行为,例如人具有名字、身高、体重等内部状态,也具有走路、吃饭人具有名字、身高、体重等内部状态,也具有走路、吃饭等行为。在面向对象的概念中,将对象的内部状态称为属等行为。在面向对象的概念中,将对象的内部状态称为属性,将其行为称为方法或事件。对象之间的联系通过消息性,将其行为称为方法或事件。对象

7、之间的联系通过消息来传递,消息机制是对象间相互联系和相互作用的方式。来传递,消息机制是对象间相互联系和相互作用的方式。说明:在说明:在Visual C+中,整个应用程序可以是一个对象,对中,整个应用程序可以是一个对象,对象也是应用程序的一个部分,例如控件和图表等象也是应用程序的一个部分,例如控件和图表等 1-8北京源智天下科技有限公司联系方式:类类 类类(Class),是是指指具具有有相相似似内内部部状状态态和和行行为为的的实实体体的的集集合合。在在类类的的构构造造过过程程中中,有有由由特特殊殊到到一一般般的的归归纳纳法法和和由由一一般般到到特特殊殊的的演演绎绎法法两两种种方方法法。在在归归纳

8、纳的的过过程程中中,从从一一个个个个具具体体的的事事物物中中把把共共同同的的特特征征抽抽取取出出来来,形形成成一一个个一一般般的的概概念念,即即“归归类类”。例例如如:人人、狮狮子子、老老鹰鹰等等,因因为为其其都都能能动动,所所以以将将其其归类为动物,如图归类为动物,如图14-3所示。所示。1-9北京源智天下科技有限公司联系方式:封装封装 封装是面向对象编程思想中的重要特性之一,其作用在于定封装是面向对象编程思想中的重要特性之一,其作用在于定义对象和操作,只提供抽象的接口,并隐藏其具体实现。义对象和操作,只提供抽象的接口,并隐藏其具体实现。封装的结果是类,也即把有相似属性(成员变量)、操作封装

9、的结果是类,也即把有相似属性(成员变量)、操作(成员函数)的事物绑在一起处理(即一个类)。(成员函数)的事物绑在一起处理(即一个类)。例如,为了方便管理公司职工,可以给职工写一个类,该类例如,为了方便管理公司职工,可以给职工写一个类,该类的属性可以有年龄、性别、姓名、入职日期等,操作可以的属性可以有年龄、性别、姓名、入职日期等,操作可以有开除、调动等,这就实现了封装,如图有开除、调动等,这就实现了封装,如图14-8所示。所示。1-10北京源智天下科技有限公司联系方式:例如,将时钟的数据和功能封装起来,构成一个时钟类。按例如,将时钟的数据和功能封装起来,构成一个时钟类。按C+的的语法,时钟类的声

10、明如下:语法,时钟类的声明如下:class Clock public: /公共成公共成员,用作外部接口,用作外部接口void SetTime(int NewH,int NewM,int NewS); void ShowTime(); private: /私有成私有成员,外部无法,外部无法访问 int Hour;int Minute;int Second; 1-11北京源智天下科技有限公司联系方式:继承继承 继继承承是是面面向向对对象象程程序序设设计计的的又又一一个个重重要要概概念念,其其可可以以将将现现实实生生活活的的概概念念对对应应到到面面向向对对象象的的程程序序逻逻辑辑中中。例例如如,车车

11、是是一一个个类类,具具有有一一些些公公共共的的性性质质;而而汽汽车车也也是是一一类类,但但其其属属于于车车,所所以以汽汽车车是是继继承承于于车车的的,而而奔奔驰驰汽汽车车又又继继承承与与汽汽车车,如图如图14-9所示。所示。1-12北京源智天下科技有限公司联系方式:一个类(派生类、子类)是从另一个类(基类、父类)派生一个类(派生类、子类)是从另一个类(基类、父类)派生而来,派生类继承了基类的所有特性。在而来,派生类继承了基类的所有特性。在C+中,一个派中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个

12、基类派生的继承称个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。一般来说,继承有为多继承。一般来说,继承有3种方式。种方式。公有继承:也称为公有继承:也称为public继承类型。继承类型。保护继承:也称为保护继承:也称为protected继承类型。继承类型。私有继承:也称为私有继承:也称为private继承类型。继承类型。1-13北京源智天下科技有限公司联系方式:继承类型与成员类型的继承关系继承类型与成员类型的继承关系 根根据据继继承承的的不不同同类类型型,基基类类的的成成员员在在派派生生类类中中的的访访问问控控制制受受继承类型的限制,具体限制如表继承类型的限制,具体限制如表14-

13、2所示。所示。 存取方式存取方式继承类型继承类型publicprotectedprivate公有继承公有继承publicprotected不可见不可见保护继承保护继承protectedprotected不可见不可见私有继承私有继承privateprivate不可见不可见1-14北京源智天下科技有限公司联系方式:多态多态 多多态态性性也也是是面面向向对对象象程程序序设设计计的的重重要要特特征征之之一一,多多态态性性是是指指发发出出同同样样的的消消息息被被不不同同类类型型的的对对象象接接收收时时导导致致完完全全不不同同的的行行为为。例例如如,动动物物都都有有吃吃的的行行为为,而而羊羊和和狼狼吃吃的

14、的方方式式和和内内容容都都不不一一样样,如如图图14-10所示。所示。 1-15北京源智天下科技有限公司联系方式:Visual C+面向面向对象程序象程序设计 Visual C+ 6.0不不仅仅是一个是一个编译器,更是一个全面的器,更是一个全面的应用用程序开程序开发环境,使用境,使用该软件可以充分利用具有面向件可以充分利用具有面向对象特性象特性的的C+来开来开发出出专业级的的Windows应用程序。用程序。 1-16北京源智天下科技有限公司联系方式:类的定义类的定义 C+语言中言中类的定的定义语法法为:class 类名称名称public|protect|private:成成员数据数据类型型 成

15、成员名称;名称;成成员函数函数;下面是一个简单的类(下面是一个简单的类(class)的定义,该类没有定义函数,)的定义,该类没有定义函数, class student public:int number;char name10;int age; ;1-17北京源智天下科技有限公司联系方式:类的继承类的继承 前前面面的的面面向向对对象象基基础础理理论论中中提提到到了了,类类是是可可以以继继承承(Inherit)的的,也也即即基基于于现现有有的的类类再再创创建建新新类类。此此处处假假定定类类B继继承承了了类类A,那那么么,则则称称A为为基基类类(Base Class,也也叫叫父父类类),B为为派派

16、生生类类(Derived Class,也也叫叫子子类类)。派派生生类类不不但但拥拥有有自自己己新新的的成成员员变变量量和和成成员员函函数数,还还可可以以拥拥有有基基类类的的成成员员变变量量和和成成员员函函数数。一一个个派派生生类类可可以以只只继继承承一一个类,也可以继承多个类,这种情况则称为多重继承。个类,也可以继承多个类,这种情况则称为多重继承。1-18北京源智天下科技有限公司联系方式:单一继承是最普通的一种继承形式,在该继承形式中,派生单一继承是最普通的一种继承形式,在该继承形式中,派生类仅有一个基类,继承的派生类定义方法如下:类仅有一个基类,继承的派生类定义方法如下:class 派生派生

17、类名名:访问权限限 基基类名称名称.;例如,要实现类例如,要实现类B与类与类A的继承关系,在定义类的继承关系,在定义类B之前必须已之前必须已定义了类定义了类A,并用如下的格式定义类,并用如下的格式定义类B。class B:public或或private A.;1-19北京源智天下科技有限公司联系方式:多重继承是指一个类可以从多个基类中派生出来。在派生类由多多重继承是指一个类可以从多个基类中派生出来。在派生类由多个基类派生出来的多重继承模式中,基类是用基类表语法成份个基类派生出来的多重继承模式中,基类是用基类表语法成份来说明的,多重继承的语法与单一继承很类似,只需要在声明来说明的,多重继承的语法

18、与单一继承很类似,只需要在声明继承的多个类之间加上逗号来分隔,如下定义形式:继承的多个类之间加上逗号来分隔,如下定义形式:class 派生派生类名:名:访问权限限 基基类名称,名称,访问权限限 基基类名称,名称,访问权限限 基基类名称名称;例如例如B类是由类类是由类C和类和类D派生的,声明如下:派生的,声明如下:class B:public C,public D1-20北京源智天下科技有限公司联系方式:虚函数与多态性虚函数与多态性 在面向对象的程序设计中,经常用到类的继承,目的在于保留基在面向对象的程序设计中,经常用到类的继承,目的在于保留基类的某种特性,但并不是所有基类的特性都适合于派生类,

19、也类的某种特性,但并不是所有基类的特性都适合于派生类,也就是说,这个派生类并不想继承基类的所有内容,因此,引出就是说,这个派生类并不想继承基类的所有内容,因此,引出了虚(了虚(Virtual)函数的概念。)函数的概念。 利用利用Virtual函数的特性可以让类只具有类型而没有实际操作内容,函数的特性可以让类只具有类型而没有实际操作内容,形成抽象类。这种类不用来声明也不能声明对象,只为了让其形成抽象类。这种类不用来声明也不能声明对象,只为了让其他类继承形成该类的基本类型。他类继承形成该类的基本类型。 例如:例如:class CAnimalpublic:void eat();virtual voi

20、d breathe();1-21北京源智天下科技有限公司联系方式:综合练习综合练习 写出如下程序代码运行后的输出。写出如下程序代码运行后的输出。 01#include iostream.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();

21、 25 1-22北京源智天下科技有限公司联系方式:思考和习题思考和习题举例说明现实生活中类和对象的关系,并说明类和对象举例说明现实生活中类和对象的关系,并说明类和对象分别所有的属性和方法,以及这些属性和方法之间的关分别所有的属性和方法,以及这些属性和方法之间的关系。系。 用用Visual C+的语法定义一个类,要求包含若干数据成的语法定义一个类,要求包含若干数据成员和成员函数。员和成员函数。创建一个创建一个person类,属性包括姓名、性别、出生日期。类,属性包括姓名、性别、出生日期。然后从然后从person类派生出一个教师类,新增加的属性为类派生出一个教师类,新增加的属性为职称。并要求定义相应的设置属性的成员函数和获取信职称。并要求定义相应的设置属性的成员函数和获取信息的成员函数。息的成员函数。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号