1 / 12
文档名称:

面向对象程序设计的基本概念.doc

格式:doc   大小:47KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

面向对象程序设计的基本概念.doc

上传人:luyinyzha 2018/3/9 文件大小:47 KB

下载得到文件列表

面向对象程序设计的基本概念.doc

相关文档

文档介绍

文档介绍:面向对象程序设计的基本概念
面向对象程序设计的基本概念2010-04-14 20:01前言:面向对象程序设计(Object-Oriented Programming,以下简称OOP)是一种起源于六十年代的Simula语言,发展已经将近三十年的程序设计思想。其自身理论已经十分完善,并被多种面向对象程序设计语言(Object-Oriented Programming Language,以下简称OOPL)实现。如果把Unix系统看成是国外在系统软件方面的文化根基,那么Smalltalk语言无疑在OOPL领域和Unix持有相同地位。由于很多原因,国内大部分程序设计人员并没有很深的OOP以及OOPL理论,很多人从一开始学****到工作很多年都只是接触到c/c++,java,vb,delphi等静态类型语言,而对纯粹的OOP思想以及作为OOPL根基的Smalltalk以及动态类型语言知之甚少,不知道其实世界上还有一些可以针对变量不绑定类型的编程语言。而这些对比却是深刻理解OO理论的重要部分,而国内这方面的资料也为数不多。故把自己的一些OO学****心得写下来做为一个系列文章(一共三篇,第一篇描叙OOP的一些基本但容易被误解的理论,第二篇主要说明各种OOPL演化和发展以及对于OOP理论的支持,第三篇主要是说模式和组件在OOP中的地位以及展望OOP的未来),由于文章描叙的只是自己对于OOP/OOPL的理解,错误以及浅薄之处在所难免,只是希望对大家能起到抛砖引玉的作用。
浅析OO的基石
从抽象说起
Booch曾经在他自己的OO领域内的名著[Booch 94]中开篇就论叙到了复杂性是软件开发过程中所故有的特质。而人们处理复杂性的最根本武器就是抽象。广义的抽象代表的是对复杂系统的简化描叙或规格说明,为了突出系统的本质属性而故意忽略其中的非实质性细节。"一个概念只有当能被最终用来实现的机制独立的描叙,理解,分析时,才将这个概念限定为抽象的概念"。而Booch也给出了他心目中关于OO领域内的狭义抽象定义:"抽象表示一个对象与其他所有对象相区别的基本特征,因此提供了同观察者角度有关的清晰定义的概念界限。"因此,根据不同观察角度,我们可以针对OOP给出不同级别的抽象层次。通常,面对一个典型的面向对象程序,[Budd 2002]将其分成五个抽象层,分别覆盖了OOP中的分析,设计与编程的各个阶段:
1,最高级别的抽象层上,程序被看成是由很多相互作用并且遵守契约的对象所组成的对象集合。对象之间相互合作完成程序的计算任务。这个抽象级别上的典型代表就是设计模式思想(Design Pattern)。
2,第二个抽象层就是一个对象集单元,也就是一群定义之间有相互联系的对象,在程序设计语言级别来看Java中是packages,C++中是name space。这个抽象级别上的典型代表就是模块化思想(Modularity)。
3,第三个抽象层所代表的是典型的OOP模式:客户/服务器模型,这主要是用来抽象两个对象之间的互交过程。在这个抽象级别上的典型代表就是对象之间的消息机制(Message Passing)。
4,第四个抽象层就是针对一组相似对象定义一个类作为生成对象的模板,类定义了对象的对外使用接口以及继承对象所需的内部继承接口,而这个抽象层次的典型代表就是接口编程(Interface Programming)。
5,第五个抽象层就是实现一个类所需要的方法和成员变量的实现(Implementation)。在这里OOP最终和POP(Procedure-Oriented Programming)相融合。
当然,我们可以根据各自的观察角度划分成更细的抽象层次比如说针对第五层抽象用到的POP理论,我们还可以进一步的划分出控制抽象(三种完全描叙图灵机计算模型所需要的控制结构)以及数据抽象(ADTs)等等,并由此继续下去(如果你的想象力足够丰富的话:)。
什么是OOP?
OOP的许多原始思想都来之于Simula语言,并在Smalltalk语言的完善和标准化过程中得到更多的扩展和对以前的思想的重新注解。可以说OO思想和OOPL几乎是同步发展相互促进的。与函数式程序设计(functional-programming)和逻辑式程序设计(logic-programming)所代表的接近于机器的实际计算模型所不同的是,OOP几乎没有引入精确的数学描叙,而是倾向于建立一个对象模型,它能够近似的反映应用领域内的实体之间的关系,其本质是更接近于一种人类认知事物所采用的哲学观的计算模型。由此,导致了一个自然的话题,那就是OOP到底是什么?[D&T 1988][ 1991].。在OOP中,对象作为计算主体,拥有自己的名称,状态以及接受外界消息的接口。在对象模型中,产生新对象,旧对象销毁,

最近更新

透析医师在血管通路管理中的角色 34页

护理组织与护理管理ppt 27页

护理专业技术工作报告ppt 27页

数字化支付在零售业的变革 33页

左氧氟沙星在社区获得性肺炎中的应用 35页

酒店客户服务:了解客户的消费心理和购买决策.. 27页

进一步完善医学实习为医生积累实践经验提供更.. 23页

财务知识与财务管理培训 31页

论文写作中文献综述的检索和整理技巧 23页

收视率与广告收入关系 34页

循环纺织体系的数字化转型 35页

运动用品个性化定制与用户赋能 35页

护理纠纷ppt名字 27页

绿色建筑行动计划促进城市产业升级和转型发展.. 24页

护理管理经验交流会ppt 23页

细胞的能量通货ATP课件(获奖公开课) 28页

电器与电子仪器维修培训 22页

电商平台的用户体验设计与提升策略 28页

大班语言教案及教学反思《我在长大》 16页

初一演讲稿作文1000字(五篇) 10页

班会活动策划进行学生交通安全经验分享会 27页

物业行业提升物业管理与维修服务品质培训 27页

流感的传播途径与疫情预防策略措施培训课件 23页

汽车涂装工艺中的涂装定位技术 27页

氧化铝项目的可行性研究市场渗透与扩展策略研.. 26页

氧化铝项目可行性研究报告及市场营销策略分析.. 35页

机器学习在医疗培训中的应用前景与挑战调研 26页

春节各地的传统摄影与艺术创作 23页

春节习俗的丰收庆典 25页

医院维稳季度分析报告 30页