2022年面向对象编程 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年面向对象编程 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象编程 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、OO OO(Object Oriented, 面向对象 )是当前计算机界关心的重点,它是90 年代软件开发方法 的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统 、 交互式界面、应用结构、应用平台、 分布式系统 、网络管理结构、 CAD 技术、人工智能等领域。OO(Object Oriented ) 面向对象OO 方法(Object-Oriented Method ,面向对象方法 ,面向对象的方法 )是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法 ,简称 OO (Object-Oriented) 方法,是建立在“对象”概念基础上的方法学
2、。 对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系, 一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念, 以对象为中心, 以类和继承为构造机制, 来认识、理解、刻画客观世界和设计、构建相应的软件系统。详细释义概述面向对象方法作为一种新型的独具优越性的新方法正引起全世界越来越广泛的关注和高度的重视,它被誉为 研究高技术的好方法 ,更是当前计算机界关心的重点。十多年来,在对OO 方法如火如荼的研究热潮中,许多专家和学者预言:正象70 年代结构化方法对计算机技术应用所产生的巨大影响和促进那样,90 年代
3、 OO 方法会强烈地影响、 推动和促进一系列高技术的发展和多学科的综合。面向对象方法的由来与发展回顾历史可激励现在,以规划将来。OO 方法起源于面向对象的编程语言(简称为OOPL )。50 年代后期,在用FORTRAN 语言编写大型程序时,常出现变量名在程序不同部分发生冲突的问题。鉴于此, ALGOL 语言的设计者在 ALGOL60 中采用了以 BeginEnd为标识的程序块,使块内变量名是局部的,以避免它们与程序中块外的同名变量相冲突。这是编程语言中首次提供封装(保护)的尝试。此后程序块结构广泛用于高级语言如Pascal 、Ada、C 之中。 60 年代中后期, Simula 语言在 ALG
4、OL 基础上研制开发,它将ALGOL 的块结构概念向前发展一步,提出了对象的概念,并使用了类,也支持类继承。 70 年代, Smalltalk 语言诞生,它取Simula 的类为核心概念,它的很多内容借鉴于 Lisp 语言。由 Xerox 公司经过对 Smautalk72 、76 持续不断的研究和改进之后, 于 1980 年推出商品化的,它在系统设计中强调对象概念的统一,引入对象、对象类、方法、实例等概念和术语,采用动态联编和单继承机制。从80 年代起,人们基于以往巳提出的有关信息隐蔽和抽象数据类型 等概念,以及由 Modula2 、Ada 和 Smalltalk 和等语言所奠定的基础,再加上
5、客观需求的推动,进行了大量的理论研究和实践探索, 不同类型的面向对象语言 (如: Object-c 、 Eiffel、 c+、 Java、 Object-Pascal名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 等)逐步地发展和建立起较完整的和雨后春笋般研制开发OP 由 Smalltalk 奠基。Smalltalk 现在被认为是最纯的 OOPL 。正是通过 Smalltalk80 的研制与推广应用,使人们注意到OO 方法所具
6、有的模块化、信息封装与隐蔽、抽象性、继承性、多样性等独特之处,这些优异特性为研制大型软件、提高软件可靠性 、可重用性、可扩充性和可维护性提供了有效的手段和途径。80 年代以来,人们将面向对象的基本概念和运行机制运用到其它领域,获得了一系列相应领域的面向对象的技术。面向对象方法已被广泛应用于程序设计语言、形式定义、设计方法学、操作系统 、分布式系统、人工智能、 实时系统、数据库、人机接口、 计 8E 算机体系结构以及并发工程、综合集成工程等,在许多领域的应用都得到了很大的发展。1986年在 美国 举行了首届面向对象编程、系统、语言和应用(OOPSLA86 )国际会议,使面向对象受到世人瞩目,其后
7、每年都举行一次,这进一步标志OO 方法的研究已普及到全世界。面向对象的基本概念与特征用计算机解决问题需要用程序设计语言对问题求解加以描述(即编程),实质上,软件是问题求解的一种表述形式。显然,假如软件能直接表现人求解问题的思维路径(即求解问题的方法),那么软件不仅容易被人理解,而且易于维护和修改,从而会保证软件的可靠性和可维护性,并能提高公共问题域中的软件模块和模块重用的可靠性。面向对象的机能念和机制恰好可以使得按照人们通常的思维方式来建立问题域的模型,设计出尽可能自然地表现求解方法的软件。面向对象的基本概念对象:对象是要研究的任何事物。从一本书到一家图书馆,单的整数到整数列庞大的数据库、极其
8、复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。在对内的操作通常称为方法。类:类是对象的模板。 即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。消息:消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实
9、际变元。面向对象主要特征:封装性 :封装是一种信息隐蔽技术,它体现于类的说明,使数据更安全.是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。继承性 :继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。 一个类直接继承其它类的全部描述,同时可修改和扩充。继承具有传递性和单根性.
10、如果 B 类继承了 A 类,而 C 类又继承了 B 类,则可以说 ,C 类在继承了 B 类的同时 ,也继承了 A 类,C 类中的对象 ,可以实现 A 类中的方法.一个类 ,只能够同时继承另外一个类,而不能同时继承多个类,通常所说的多继承是指一个类在继承其父类的同时 ,实现其他接口 .类的对象是各自封闭的,如果没继承性机制,则类对象中数据、方法就名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 会出现大量重复。继承支持系统的可重用
11、性,从而达到减少代码量的作用,而且还促进系统的可扩充性。多态性 :对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。 利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:Print 消息被发送给一图或表时调用的打印方法与将同样的Print 消息发送给一正文文件而调用的打印方法会完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不
12、同的响应。在OOPL 中可通过在 派生类 中重定义基类函数(定义为重载函数或虚函数)来实现多态性。综上可知,在 OO 方法中,对象和传递消息分别表现事物及事物间相互联系的概念。类和继承是是适应人们一般思维方式的描述范式。方法是允许作用于该类对象上的各种操作。这种对象、类、消息和方法的程序设计范式的基本点在于对象的封装性和类的继承性。通过封装能将对象的定义和对象的实现分开, 通过继承能体现类与类之间的关系,以及由此带来的动态联编和实体的多态性,从而构成了面向对象的基本特征。面向对象的要素(1)抽象。抽象是指强调实体的本质、 内在的属性。 在系统开发中, 抽象指的是在决定如何实现对象之前的对象的意
13、义和行为。使用抽象可以尽可能避免过早考虑一些细节。类实现了对象的数据(即状态)和行为的抽象。(2)封装性(信息隐藏) 。封装性是保证软件部件具有优良的模块性的基础。面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。 对象是封装的最基本单位。 封装防止了程序相互依赖性而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。(3)共享性面向对象技术 在不同级别上促进了共享同一类中的共享。同一类中的对象有着相同 数据结构 。这些对象之间是结构、行为特征的共享关系。在同一应用中共享。 在同一应
14、用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承, 使各相似子类共享共同的结构和行为。使用继承来实现代码的共享, 这也是面向对象的主要优点之一。 在不同应用中共享。 面向对象不仅允许在同一应用中共享信息,而且为未来目标的可重用设计准备了条件。通过类库这种机制和结构来实现不同应用中的信息共享。4.强调对象结构而不是程序结构面向对象的新方法论、新范型、新技术OO 方法的作用和意义决不只局限于编程技术,它是一种新的程序设计范型-面向对象程序设计范型;是信息系统开发的新方法论-面向对象方法学;是正在兴起的新技术-面向对象技术。面向对象程序设计范型:程序设计范型(以下简称程设范型)
15、具体指的是程序设计的体裁,正如文学上有小说、诗歌、散文等体裁,程序设计体裁是用程序设计语言表达各种概念和各种结构的一套设施。目前,程设名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 范型分为:过程式程设范型、函数式程设范型,此外还有进程式程设范型、事件程设范型和类型系统程设范型。每一程设范型都有多种程序设计语言支持(如:FORTRAN 、PASCAL 、C 均体现过程式程设范型,用来进行面向过程 的程序设计),而某些语言兼备多
16、种范型(如:Lisp 属过程与函数混合范型, C+则是进程与面向对象混合范型的语言)。过程式程设范型是流行最广泛的程序设计范型(人们平常所使用的程序设计语言大多属于此类型一笔勾销它们为面向过程的语言) ,这一程设范型的中心点是设计过程,所以程序设计时首先要决定的是问题解所需要的过程,然后设计过程的算法。这类范型的语言必须提供设施给过程(函数)传送变元和返回的值,如何区分不同种类的过程(函数)、如何传送变元是这类程序设计中关心的主要问题。面向对象程设范型是在以上范型之上发展起来的,它的关键在于加入了类及其继承性,用类表示通用特性,子类继承父类的特性, 并可加入新的特性。 对象以类为样板被创建。
17、所以在面向对象程设范中,首要的任务是决定所需要的类,每个类应设置足够的操作,并利用继承机制里二地共享共同的特性。简而言之, 面向对象程设范型具有其它范型所缺乏或不具备的特点,极富生命力, 能够适应复杂的大型的软件开发。可以肯定地说,这种新的程设范型必将有力地推动软件开发的新的进展。限于篇幅,其它程设范型在此不作细述。面向对象方法学:OO 方法遵循一般的认知方法学的基本概念(即有关演绎-从一般到特殊和归纳 -从特殊到一般的完整理论和方法体系) 而建立面向对象方法等基础。面向对象方法学要点之一: 认为客观世界是由各种对象所组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,每一个对象
18、都属于某个对象 类,都是该对象类的一个元素。复杂的对象可以是由相对比较简单的各种对象以某种方式而构成的。 不同对象的组合及相互作用就构成了我们要研究、分析和构造的客观系统。 面向对象方法学要点之二:是通过类比,发现对象间的相似性, 即对象间的共同属性, 这就是构成对象类的依据。在?quot;类、父类 、子类的概念构成对象类的层次关系时,若不加特殊说明,则处在下一层次上的对象可自然地继承位于上一层次上的对象的属性。 面向对象方法学要点之三: 认为对已分成类的各个对象, 可以通过定义一组方法 来说明该对象的功能,即允许作用于该对象上的各种操作。对象间的相互联系是通过传递消息来完成的,消息就是通知对
19、象去完成一个允许作用于该对象的操作,至于该对象将如何完成这个操作的细节,则是封装在相应的对象类的定义中的,细节对于外界是隐蔽的。可见,OO 方法具有很强的类的概念, 因此它就能很自然地直观地模拟人类认识客观世界的方式,亦即模拟人类在认知进程中的由一般到特殊的演绎功能或由特殊到一般的归纳功能,类的概念既反映出对象对象的本质属性,又提供了实现对象共享机制的理论根据。当我们遵照面向对象方法学的思想进行软件系统开发时首先要行面向对象的分析( OOA Object Oriented Analysis ),_其任务是了解问题域所涉及的对象、对象间的关系和作用(即操作),然后构造问题的对象模型,力争该模型能
20、真实地反映出所要解决的实质问题 。在这一过程中,抽象是最本质、最重要的方法。针对不同的问题性质选择不同的抽象层次,过简或过繁都会影响到对问题的本质属性的了解和解决。其次就是进行面向对象的设计(OODObject Oriented Design ),即设计软件的对象模型。根据所应用的面向对象 软件开发环境 的功能强弱不等, 在对问题的对象模型的分析基础上,可能要对它进行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 - - - - - - - - - 一定的改造,
21、 但应以最少改变原问题域的对象模型为原则。然后就在软件系统内设设计各个对象、对象间的关系(如层次关系、继承关系等)、 对象间的通信方式(如消息模式)等, 总之是设计各个对 ?quot;应做些什么 。最后阶段是面向对象的实现(OOI- Object Oriented Zmplementation),即指软件功能的编码实现,它包括:每个对象的内部功能的实现;确立对象哪一些处理能力应在哪些类中进行描述;确定并实现系统的界面、输出的形式及其它控制机理等,总之是实现在OOD 阶段所规定的各个对象所应完成的任务。用 OO 方法进行面向对象程序设计,其基本步骤如下:(1) 分析确定在问题空间和解空间出现的全
22、部对象及其属性;(2) 确定应施加于每个对象的操作,即对象固有的处理能力;(3) 分析对象间的联系,确定对象彼此间传递的消息;(4) 设计对象的消息模式,消息模式和处理能力共同构成对象的外部特性;(5) 分析各个对象的外部特性,将具有相同外部特性的对象归为一类,从而确定所需要的类;(6) 确定类间的继承关系, 将各对象的公共性质放在较上层的类中描述,通过继承来共享对公共性质的描述;(7) 设计每个类关于对象外部特性的描述;(8) 设计每个类的内部实现(数据结构和方法);(9) 创建所需的对象(类的实例),实现对象间应有的联系(发消息)。面向对象技术:技术 泛指根据生产实践经验和自然科学原理而发
23、展起来的各种工艺操作方法与技能;广义地讲,还包括相应的生产工具 和其它物质设备,以及生产的工艺过程或作业程序、方法。OO方法既是程序设计新范型、系统开发的新方法学,作为一门新技术它就有了基本的依据,事实上,OO 方法可支持种类不同的系统开发地,已经或正在许多方面得以应用,因此,可以说OO 方法是一门新的技术 面向对象技术。近十多年来,除了面向对象的程序设计 以外,OO 方法已发展应用到整个信息系统领域和一些新兴的工业领域,包括:用户界面(特别是图形用户界面 GUI)、应用集成平台、面向对象数据库 (OODB )、分布式系统、网络管理结构、人工智能领域以及并发工程、综合集成工程等。 人工智能是和
24、计算机密切相关的新领域,在很多方面已经采用面向对象技术,如知识的表示,专家系统的建造、用户界面等。人工智能的软件通常规模较大,用面向对象技术有可能更好地设计并维护这类程序。 80 年代后期形成的并发工程,其概念要点是在产品开发初期(即方案设计阶段)就把结构、工艺、加工、装配、测试、使用、市场等问题同期并行地启动运行,其实现必须有两名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - 个基本条件:一是专家群体,二是共享并管理产品信息(
25、将CAD、CAE、CIN 紧密结合在一起)。显然,这需要面向对象技术的支持。 目前,一些公司采用并发工程组织产品的开发,已取得显著效益:波音公司用以开发巨型777 运输机,比开发767 节省了一年半时间; 日本把并发工程用于新型号的汽车生产, 和美国相比只用一半的时间。产业界认为它们念后的生存要依靠并发工程,而面向对象技术是促进并发工程发展的重要支持。综合集成工程是开发大型开放式复杂统的新的工程概念,和并发工程相似, 专家群体的组织和共享信息,是支持这一新工程概念的两大支柱。由于开放式大系统包含人的智能活动,建立数学模型非常困难,而 OO 方法能够比较自然地刻划现实世界,容易达到问题空间和程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年面向对象编程 2022 面向 对象 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内