- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++高级编程一v1.2 暗影行者.pptx
C++高级编程 (一)
联航精英训练营
关于对象
汇编,C,C++,C#经常一起吃饭。
有一天汇编和C突然没来。C#问C++,他俩呢?
C++说,他俩都没对象,去过光棍节去了。
从SP到OOP
传统的结构化程序设计
传统的结构化程序设计(Structured Programming---SP)方法
在数据处理过程中,采用的是自顶向下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块完成指定的子任务,并且提供一个清晰、严格的调用界面,主过程通过调用各子过程完来成全部处理工作 。
SP方法的特点
优点:
(1)这种程序设计方法力求算法描述准确。
(2)对每一子过程模块容易进行程序正确性证明。
缺点:
(1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思路。
(2)程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。
(3)维护程序的一致性困难。该种方法将数据与对数据进行处理的程序代码分离。
面向对象的程序设计
面向对象的程序设计
(Object-Oriented Programming ----OOP)方法
面向对象的有关概念
面向对象的程序设计方法强调直接以问题域(现实世界)中的事物为中心来思考和认识问题,并按照这些事物的本质特征把它们抽象为对象,以作为构成软件系统的基础。
面向对象的有关概念
(1)对象(Object):每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。
(2)类(Class):具有相似属性和行为的一组对象,就称为类。可见,有了类的概念以后,就可以对具有共同特征的事物进行统一描述。
(3)封装(Encapsulation):封装把对象的属性和方法看成了一个密不可分的整体,从而使对象能够完整地描述并对应于一个具体事物。
(4)继承(Inheritance):将客观事物进行归类是一个逐步抽象的过程,反之,将类进行层层分类便是一个概念逐渐细化的过程。
面向对象的有关概念
(5)消息(Message):在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消息。
(6)多态性(Polymorphism):多态性是面向对象的另一重要特征。在通过继承而派生出的一系列类中,可能存在一些名称相同,但实现过程和功能不同的方法(Method)。
类
类(Class)定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的(它的行为)。
类 狗
开始
私有成员:
孕育
毛皮颜色
公有成员:
吠叫()
结束
对象
对象(Object)是类的实例。
定义莱丝是狗
莱丝.毛皮颜色:=棕白色
莱丝.吠叫()
方法
方法(Method)是一个类能做的事情,但方法并没有去做这件事。
定义莱丝是狗
定义泰尔是狗
莱丝.吠叫()
消息传递机制
一个对象通过接受消息、处理消息、传出消息或使用其他类的方法来实现一定功能,这叫做消息传递机制(Message Passing)。
继承性
继承性(Inheritance)是指,在某种情况下,一个类会有“子类”。
类牧羊犬:继承狗
定义莱丝是牧羊犬
莱丝.吠叫() /* 注意这里调用的是狗这个类的吠叫属性。 */
————————————————————————————————
类吉娃娃犬:继承狗
开始
公有成员:
颤抖()
结束
类牧羊犬:继承狗
定义莱丝是牧羊犬
莱丝.颤抖() /* 错误:颤抖是吉娃娃犬的成员方法。 */
封装性
具备封装性(Encapsulation)的面向对象程序设计隐藏了某一方法的具体执行步骤,取而代之的是通过消息传递机制传送消息给它。
/* 一个面向过程的程序会这样写: */
定义莱丝
莱丝.设置音调(5)
莱丝.吸气()
莱丝.吐气()
/* 而当狗的吠叫被封装到类中,任何人都可以简单地使用: */
定义莱丝是狗
莱丝.吠叫()
多态性
多态性(Polymorphism)指方法在不同的类中调用可以实现的不同结果。
OOP方法的特点
(1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,
原创力文档


文档评论(0)