对象和面向对象程序设计

上传人:壹****1 文档编号:498225048 上传时间:2022-10-12 格式:DOC 页数:6 大小:30.50KB
返回 下载 相关 举报
对象和面向对象程序设计_第1页
第1页 / 共6页
对象和面向对象程序设计_第2页
第2页 / 共6页
对象和面向对象程序设计_第3页
第3页 / 共6页
对象和面向对象程序设计_第4页
第4页 / 共6页
对象和面向对象程序设计_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《对象和面向对象程序设计》由会员分享,可在线阅读,更多相关《对象和面向对象程序设计(6页珍藏版)》请在金锄头文库上搜索。

1、对象和面向对象程序设计一、对象( object ) 对象。在面向对象编程中,由当作完整实体的操作和数据组成的变量。对象是基于特定模型的,在对象中客户使用对象的服务通过由一组方法或相关函数的接口访问对象的数据。然后客户端可以调用这些方法执行某中操作。对象是在面向对象程序编制中,把软件打算处理的现实世界中存在的物理性的 , 或是抽象的实体作为属性 ( 数据 ) 和操作 ( 方法 ) 的集合模型化做,在计算机上再现的东西。定义 object 模型为 class 。把按照 class 实际在计算机存储器上展开的 object 称为 instance( 实体 ), 但一般多以这个 instance 的意

2、义称为 object 。在 V 和 java 开发中 Object 类型是所有类的父类,也就是说 Object 是高度抽象的一个类,它具有所有类的功能特性,这对我们的开发带来了很多方便,比如,我们可以使用 Object 来声明一个未知的类型,以用来为我们以后接受各种类型是值作准备,也就是泛型。 二、面向对象程序设计1历史回顾1967 年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了 Simula67 语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。 20 世纪 70 年代初, Palo Alto 研究中心的 A

3、lan Kay 所在的研究小组开发出 Smalltalk 语言,之后又开发出Smalltalk-80 , Smalltalk-80 被认为是最纯正的面向对象语言,它对后来出现的面向对象语言,如 Object-C ,C+,Self ,Eiffl 都产生了深远的影响。随着面向对象语言的出现,面向对象程序设计也就应运而生且得到迅速发展。之后,面向对象不断向其他阶段渗透, 1980 年 Grady Booch 提出了面向对象设计的概念,之后面向对象分析开始。 1985 年,第一个商用面向对象数据库问世。 1990 年以来,面向对象分析、测试、度量和管理等研究都得到长足发展。实际上,“对象”和“对象的属

4、性”这样的概念可以追溯到20 世纪 50 年代初,它们首先出现于关于人工智能的早期著作中。但是出现了面向对象语言之后,面向对象思想才得到了迅速的发展。过去的几十年中,程序设计语言对抽象机制的支持程度不断提高:从机器语言到汇编语言,到高级语言,直到面向对象语言。汇编语言出现后,程序员就避免了直接使用0-1 ,而是利用符号来表示机器指令,从而更方便地编写程序;当程序规模继续增长的时候,出现了 Fortran 、C、Pascal 等高级语言,这些高级语言使得编写复杂的程序变得容易,程序员们可以更好地对付日益增加的复杂性。但是,如果软件系统达到一定规模,即使应用结构化程序设计方法,局势仍将变得不可控制

5、。作为一种降低复杂性的工具,面向对象语言产生了,面向对象程序设计也随之产生。2面向对象程序设计的基本概念面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。1)对象对象是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实体。2)类类是具有相同类型的对象的抽象。一个对象所包含的所有数据和代码可以通过类来构造。3)封装封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。对象的某些数据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。4)继承继承是让某个类型的对象获

6、得另一个类型的对象的特征。通过继承可以实现代码的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有自己的新特性。5)多态多态是指不同事物具有不同表现形式的能力。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减少代码的复杂度。6)动态绑定绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定是指与给定的过程调用相关联的代码只有在运行期才可知的一种绑定,它是多态实现的具体形式。7)消息传递对象之间需要相互沟通,沟通的途径就是对象之间收发信息。消息内容包括接收消息的对象的标识,需要调用的函数的标识,以及必要的信息。消息传递的概念使得对现实世界的

7、描述更容易。3面向对象语言一个语言要称为面向对象语言必须支持几个主要面向对象的概念。根据支持程度的不同,通常所说的面向对象语言可以分成两类:基于对象的语言,面向对象的语言。基于对象的语言仅支持类和对象,而面向对象的语言支持的概念包括:类与对象、继承、多态。举例来说, Ada就是一个典型的基于对象的语言,因为它不支持继承、多态,此外其他基于对象的语言还有 Alphard 、CLU、 Modula。面向对象的语言中一部分是新发明的语言,如 Smalltalk 、 EuclidJava,这些语言本身往往吸取了其他语言的精华,而又尽量剔除他们的不足,因此面向对象的特征特别明显,充满了蓬勃的生机;另外一

8、些则是对现有的语言进行改造,增加面向对象的特征演化而来的。如由 Pascal 发展而来的 Object Pascal ,由 C 发展而来的 Objective-C ,C+,由 Ada发展而来的 Ada95 等,这些语言保留着对原有语言的兼容,并不是纯粹的面向对象语言,但由于其前身往往是有一定影响的语言,因此这些语言依然宝刀不老,在程序设计语言中占有十分重要的地位。4面向对象程序设计的优点面向对象出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过程的程序设计。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数(在此泛指例程、函数、过程)用于完成这些任务,解决问题的焦点集

9、中于函数。其中函数是面向过程的,即它关注如何根据规定的条件完成指定的任务。在多函数程序中,许多重要的数据被放置在全局数据区,这样它们可以被所有的函数访问。每个函数都可以具有它们自己的局部数据。下图显示了一个面向过程程序中函数和数据的关系。图 1 面向过程程序设计中函数和数据的关系示例这种结构很容易造成全局数据在无意中被其他函数改动,因而程序的正确性不易保证。面向对象程序设计的出发点之一就是弥补面向过程程序设计中的一些缺点:对象是程序的基本元素,它将数据和操作紧密地连结在一起,并保护数据不会被外界的函数意外地改变。下图显示了一个面向对象程序中对象与函数和数据的关系。图 2 面向对象程序设计中函数

10、和数据的关系示例比较面向对象程序设计和面向过程程序设计,还可以得到面向对象程序设计的其他优点:1)数据抽象的概念可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰;2)通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减低了出错概率,降低软件维护的难度;3)结合面向对象分析、面向对象设计,允许将问题域中的对象直接映射到程序中,减少软件开发过程中中间环节的转换过程;4)通过对对象的辨别、划分可以将软件系统分割为若干相对为独立的部分,在一定程度上更便于控制软件复杂度;6)以对象为中心的设计可以帮助开发人员从静态(属性)和动态(方法)两个方面把握问题,从而更

11、好地实现系统;7)通过对象的聚合、联合可以在保证封装与抽象的原则下实现对象在内在结构以及外在功能上的扩充,从而实现对象由低到高的升级。面对对象的程序设计方法在数据输入模块内部设计中,采用面向对象的设计方法。 6 面向对象的基本概念如下:对象:对象是要研究的任何事物。从一本书到一家图书馆,单的整数到整数列庞大的数据库、极其复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。在对内的操作通

12、常称为方法。类:类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。消息:消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。面向对象主要特征:封装性:封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和

13、实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。继承性:继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继承其它类的全部描述,同时可修改和扩充。继承具有传递性。继承分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承性机制,则类对象中数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。多态性:对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。

14、利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如: Print 消息被发送给一图或表时调用的打印方法与将同样的 Print 消息发送给一正文文件而调用的打印方法会完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。在 OOPL中可通过在派生类中重定义基类函数(定义为重载函数或虚函数)来实现多态性。综上可知,在面对对象方法中,对象和传递消息分别表现事物及事物间相互联系

15、的概念。类和继承是是适应人们一般思维方式的描述范式。方法是允许作用于该类对象上的各种操作。这种对象、类、消息和方法的程序设计范式的基本点在于对象的封装性和类的继承性。通过封装能将对象的定义和对象的实现分开,通过继承能体现类与类之间的关系,以及由此带来的动态联编和实体的多态性,从而构成了面向对象的基本特征。面向对象设计是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。按照 Bjarne STroustRUP 的说法,面向对象的编程范式:l 决定你要的类;2 给每个类提供完整的一组操作;3 明确地使用继承来表现共同点。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号