面向对象编程1.doc_第1页
面向对象编程1.doc_第2页
面向对象编程1.doc_第3页
面向对象编程1.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象编程 安徽省国税局信息中心 赵为民目前仍然没有精确的定义。各种定义都是从不同角度去描述。一、面向对象编程(Object Oriented Programming)的基本思想与函数式程序设计(functional-programming)和逻辑式程序设计(logic-programming)所代表的接近于机器的实际计算模型所不同的是,OOP几乎没有引入精确的数学描叙,而是倾向于建立一个对象模型,它能够近似的反映应用领域内的实体之间的关系,其本质是更接近于一种人类认知事物所采用的哲学观的计算模型。面向过程编程要求从计算机角度,而不是从待解决问题角度去思考。程序员必须在解决空间与待解决空间建立映射关系。面向对象编程则让程序员在待解决问题空间上建模。在OOP中,对象作为计算主体,拥有自己的名称,状态以及接受外界消息的接口。在对象模型中,产生新对象,旧对象销毁,发送消息,响应消息就构成OOP计算模型的根本。1. 发展历史20世纪60年代挪威计算中心发明Simula语言。20世纪70年代Alan Kay在施乐组建的研究小组发明了Smalltalk语言1986年第一次面向对象编程大会开幕。1994年贝尔实验室研究员 Bjarne Stroustrup发明了C+.2. 主要概念 组件:数据和功能一起在运行着的计算机程序中形成的单元,组件在 OOP 计算机程序中是模块和结构化的基础。类是同类型概念的抽象。对象是类的具体实例。对象是服务提供者。对象有状态、行为、标识。抽象性:关注主要信息的能力。封装:也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。封装蕴涵着另一概念,实现隐藏。 多态性这也是消息传递和过程调用的区别所在。消息传递有一个指定的接受者。不同接受者的解释指响应消息所执行的方法集合会有所不同。多态性所依赖的实现技术为延期绑定。即在方法调用时才决定该消息的接受者。而在传统的过程调用中,在编译是就绑定了名称和方法代码段。:组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。 继承性:允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。3. 程序设计总结 面向对象编程把程序看成是一系列连接松散的代理集合。这些代理被称为对象。每一个对象都负责特定的任务。通过对象间的相互作用推动计算的执行。因此在某种意义上编程就是模型整体的仿真设计面向对象的程序就像组织由个体组成的团体,每一个团体成员都承担一定的责任,团体的总目标有赖于团体各个成员的工作,以及成员之间的相互合作。 对象是状态(数据值)和行为(方法)的封装体,对象在许多方面类似于模块或抽象数据类型。对象的行为是由对象的类决定的。每一个对象都是某个类的实例。同一个类的所有实例都能对相似的请求做出相似的响应(调用同一个方法)对象通过调用方法响应消息在面向对象的世界里术语消息就是指调用某个类的某个方法。换句话说调用某个类的某个方法就是给某个类发送特定消息,展示它的行为。对消息的解释由对象决定。不同类的对象可以有不同的解释。对象和类增加了继承这个概念,扩展了抽象数据类型概念。类可以组织成一棵层次继承树。树底层的类可以访问或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论