版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、联系方式:北京源智天下科技有限公司第十四讲:第十四讲:Visual C+面向对象编程面向对象编程 杨章伟杨章伟:yang5054121631-2北京源智天下科技有限公司联系方式:课程内容安排课程内容安排面向对象技术根本概念面向对象技术根本概念对象和类对象和类对象的属性和方法对象的属性和方法封装、承继和多态封装、承继和多态 Visual C+面向对象程序设计面向对象程序设计 综合练习综合练习思索和习题思索和习题 1-3北京源智天下科技有限公司联系方式:面向对象技术根本概念面向对象技术根本概念 传统的软件开发技术如构造化技术是采用自顶向下传统的软件开发技术如构造化技术是采用自顶向下的思想指点程序设
2、计,即将目的划分为假设干子目的,的思想指点程序设计,即将目的划分为假设干子目的,子目的再进一步划分下去,直到目的能被程序设计实现子目的再进一步划分下去,直到目的能被程序设计实现为止。为止。面向对象技术根据现实生活中的详细实体,将程序的实面向对象技术根据现实生活中的详细实体,将程序的实现分解为一个一个详细对象的实现,这是更符合人的思现分解为一个一个详细对象的实现,这是更符合人的思想方式的一种方法。比如,在消费一辆汽车的过程中,想方式的一种方法。比如,在消费一辆汽车的过程中,将组成汽车的各个零件都先消费出来,再拼合成汽车,将组成汽车的各个零件都先消费出来,再拼合成汽车,这就是面向对象技术,如图这就
3、是面向对象技术,如图14-1所示。所示。1-4北京源智天下科技有限公司联系方式:发动机轮胎汽车 对象应用程序(对象)1-5北京源智天下科技有限公司联系方式:面向对象程序设计言语面向对象程序设计言语 最早出现的面向对象程序设计言语是最早出现的面向对象程序设计言语是Simula言语。该言语是言语。该言语是1967年挪威科学家年挪威科学家Ole-Johan Dahl和和Kristen Nygaard正式正式发布的。其引入了一切后来面向对象程序设计言语所遵照的发布的。其引入了一切后来面向对象程序设计言语所遵照的根底概念,例如对象、类、承继等。根底概念,例如对象、类、承继等。随后,比较经典的面向对象程序
4、设计言语有随后,比较经典的面向对象程序设计言语有SmallTalk、C+及及Java等。总体来说,面向对象的程序设计言语有如下的一等。总体来说,面向对象的程序设计言语有如下的一些特点。些特点。访问控制。在访问控制。在C+中,类有私有的中,类有私有的private、维护的、维护的protected和公有的和公有的public3种访问机制。种访问机制。封装:将一组数据和与这组数据有关的操作集合组装在一同封装:将一组数据和与这组数据有关的操作集合组装在一同,构成一个能动的实体,也就是对象,构成一个能动的实体,也就是对象承继性。经过对已有对象进展添加或部分修正的方法建立新承继性。经过对已有对象进展添加
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+的语法,时钟类的声明如下:的语法,时钟类的声明如下:class Clock public: /公共成员,用作外部接口公共成员,用作外部接口void SetTime(int NewH,int New
10、M,int NewS); void ShowTime(); private: /私有成员,外部无法访问私有成员,外部无法访问 int Hour;int Minute;int Second; 1-11北京源智天下科技有限公司联系方式:承继承继 承继是面向对象程序设计的又一个重要概念,其可以将现实承继是面向对象程序设计的又一个重要概念,其可以将现实生活的概念对应到面向对象的程序逻辑中。例如,车是生活的概念对应到面向对象的程序逻辑中。例如,车是一个类,具有一些公共的性质;而汽车也是一类,但其一个类,具有一些公共的性质;而汽车也是一类,但其属于车,所以汽车是承继于车的,而飞驰汽车又承继与属于车,所以汽
11、车是承继于车的,而飞驰汽车又承继与汽车,如图汽车,如图14-9所示。所示。车汽车类继承于奔驰汽车继承于1-12北京源智天下科技有限公司联系方式:一个类派生类、子类是从另一个类基类、父类派生一个类派生类、子类是从另一个类基类、父类派生而来,派生类承继了基类的一切特性。在而来,派生类承继了基类的一切特性。在C+中,一个派中,一个派生类可以从一个基类派生,也可以从多个基类派生。从生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的承继称为单承继;从多个基类派生的承一个基类派生的承继称为单承继;从多个基类派生的承继称为多承继。普通来说,承继有继称为多承继。普通来说,承继有3种方式。种方式。公
12、有承继:也称为公有承继:也称为public承继类型。承继类型。维护承继:也称为维护承继:也称为protected承继类型。承继类型。私有承继:也称为私有承继:也称为private承继类型。承继类型。1-13北京源智天下科技有限公司联系方式:承继类型与成员类型的承继关系承继类型与成员类型的承继关系 根据承继的不同类型,基类的成员在派生类中的访问控制受根据承继的不同类型,基类的成员在派生类中的访问控制受承继类型的限制,详细限制如表承继类型的限制,详细限制如表14-2所示。所示。 存取方式存取方式继承类型继承类型publicprotectedprivate公有继承公有继承publicprotecte
13、d不可见不可见保护继承保护继承protectedprotected不可见不可见私有继承私有继承privateprivate不可见不可见1-14北京源智天下科技有限公司联系方式:多态多态 多态性也是面向对象程序设计的重要特征之一,多态性是指发出同样的音讯被不同类型的对象接纳时导致完全不同的行为。例如,动物都有吃的行为,而羊和狼吃的方式和内容都不一样,如图14-10所示。 1-15北京源智天下科技有限公司联系方式:Visual C+面向对象程序设计面向对象程序设计 Visual C+ 6.0不仅仅是一个编译器,更是一个全面的运用不仅仅是一个编译器,更是一个全面的运用程序开发环境,运用该软件可以充分
14、利器具有面向对象特性程序开发环境,运用该软件可以充分利器具有面向对象特性的的C+来开发出专业级的来开发出专业级的Windows运用程序。运用程序。 1-16北京源智天下科技有限公司联系方式:类的定义类的定义 C+言语中类的定义语法为:言语中类的定义语法为:class 类称号类称号public|protect|private:成员数据类型成员数据类型 成员称号;成员称号;成员函数成员函数;下面是一个简单的类下面是一个简单的类class的定义,该类没有定义函数,的定义,该类没有定义函数, class student public:int number;char name10;int age; ;1
15、-17北京源智天下科技有限公司联系方式:类的承继类的承继 前面的面向对象根底实际中提到了,类是可以承继前面的面向对象根底实际中提到了,类是可以承继Inherit的,也即基于现有的类再创建新类。此处假定类的,也即基于现有的类再创建新类。此处假定类B承继承继了类了类A,那么,那么称那么,那么称A为基类为基类Base Class,也叫父类,也叫父类,B为派生类为派生类Derived Class,也叫子类。派生类,也叫子类。派生类不但拥有本人新的成员变量和成员函数,还可以拥有基不但拥有本人新的成员变量和成员函数,还可以拥有基类的成员变量和成员函数。一个派生类可以只承继一个类的成员变量和成员函数。一个派
16、生类可以只承继一个类,也可以承继多个类,这种情况那么称为多重承继。类,也可以承继多个类,这种情况那么称为多重承继。1-18北京源智天下科技有限公司联系方式:单一承继是最普通的一种承继方式,在该承继方式中,派生单一承继是最普通的一种承继方式,在该承继方式中,派生类仅有一个基类,承继的派生类定义方法如下:类仅有一个基类,承继的派生类定义方法如下:class 派生类名派生类名:访问权限访问权限 基类称号基类称号.;例如,要实现类例如,要实现类B与类与类A的承继关系,在定义类的承继关系,在定义类B之前必需之前必需已定义了类已定义了类A,并用如下的格式定义类,并用如下的格式定义类B。class B:pu
17、blic或或private A.;1-19北京源智天下科技有限公司联系方式:多重承继是指一个类可以从多个基类中派生出来。在派生类由多多重承继是指一个类可以从多个基类中派生出来。在派生类由多个基类派生出来的多重承继方式中,基类是用基类表语法成份个基类派生出来的多重承继方式中,基类是用基类表语法成份来阐明的,多重承继的语法与单一承继很类似,只需求在声明来阐明的,多重承继的语法与单一承继很类似,只需求在声明承继的多个类之间加上逗号来分隔,如下定义方式:承继的多个类之间加上逗号来分隔,如下定义方式:class 派生类名:访问权限派生类名:访问权限 基类称号,访问权限基类称号,访问权限 基类称号,访问基
18、类称号,访问权限权限 基类称号基类称号;例如例如B类是由类类是由类C和类和类D派生的,声明如下:派生的,声明如下:class B:public C,public D1-20北京源智天下科技有限公司联系方式:虚函数与多态性虚函数与多态性 在面向对象的程序设计中,经常用到类的承继,目的在于保管基在面向对象的程序设计中,经常用到类的承继,目的在于保管基类的某种特性,但并不是一切基类的特性都适宜于派生类,也类的某种特性,但并不是一切基类的特性都适宜于派生类,也就是说,这个派生类并不想承继基类的一切内容,因此,引出就是说,这个派生类并不想承继基类的一切内容,因此,引出了虚了虚Virtual函数的概念。函数的概念。 利用利用Virtual函数的特性可以让类只具有类型而没有实践操作内容函数的特性可以让类只具有类型而没有实践操作内容,构成笼统类。这种类不用来声明也不能声明对象,只为了让,构成笼统类。这种类不用来声明也不能声明对象,只为了让其他类承继构成该类的根本类型。其他类承继构成该类的根本类型。 例如:例如:class CAnimalpublic:void eat();virtual void breathe();1-21北京源智天下科技有限公司联
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东日照市消防救援支队政府专职消防队员招收备考题库参考答案详解
- 2026河南理工大学招聘备考题库及完整答案详解
- 2026浙江温州市苍南县人才发展有限公司招聘市场化工作人员1人备考题库及参考答案详解一套
- 2026浙江宁波东方海纳人力资源服务有限公司招聘6人备考题库及一套答案详解
- 2026浙江金华市义乌市福田街道强村公司招聘1人备考题库完整答案详解
- 2026广西百色市西林县第三初级中学招聘后勤人员1人备考题库及答案详解一套
- 2026四川创锦发展控股集团有限公司招聘项目负责人的1人备考题库及答案详解(名校卷)
- 2026山东日照市消防救援支队政府专职消防队员招收备考题库及答案详解(考点梳理)
- 2026浙江温州市少年宫招聘合同制员工1人备考题库附答案详解(完整版)
- 2026云南昆明安琪儿妇产医院招聘17人备考题库完整答案详解
- DL∕T 5783-2019 水电水利地下工程地质超前预报技术规程
- DZ∕T 0342-2020 矿坑涌水量预测计算规程(正式版)
- 《监理企业安全责任清单(2.0版)参考模板》
- 2024年证券从业考试题库及答案【全国通用】
- 大唐国际600MW仿真机题
- 法人代表代持协议书
- 缅怀革命先烈-感恩幸福生活-主题班会方案
- 关于房屋征收工作重难点的调研报告
- 急性高碳酸血症性呼吸衰竭诊断和治疗
- 混凝土浇筑检验批
- GA/T 1344-2016安防人脸识别应用视频人脸图像提取技术要求
评论
0/150
提交评论