理论教育 面向对象方法与主要概念简介

面向对象方法与主要概念简介

时间:2023-08-17 理论教育 版权反馈
【摘要】:面向对象方法认为,每种对象都有各自的内部状态和运动规律,不同对象之间的相互联系和相互作用构成了不同的系统。在面向对象开发方法中,对象就是一些可重用部件,是面向对象程序设计的基本元素。消息是为了完成某些操作而向对象发送的命令和命令说明。继承是面向对象描述类之间相似性的重要机制。(五)封装封装,又称信息隐藏,是指把对象及对象的方法、操作的实现封闭在一起,对象的封装性是面向对象技术的一个重要的特征。

面向对象方法与主要概念简介

(一)对象

对象就是客观世界中的任何事物在计算机程序世界里的抽象表示,或者说,是现实世界中个体的数据抽象模型。

面向对象方法认为,每种对象都有各自的内部状态和运动规律,不同对象之间的相互联系和相互作用构成了不同的系统。对象是一个封闭体,它是由一组数据和施加于这些数据上的一组操作构成的,对象的本质就是数据与操作的封装。对象由标识、数据、操作和接口四部分组成。

(1)标识:即对象的名称,用来在问题域中区分其他对象,如物资管理系统中的实体对象“物资”。

(2)数据:描述对象属性的存储或数据结构,它表明了对象的一种状态。

(3)操作:也称方法,即对象的行为,分为两类:一类是对象自身承受的操作,即操作结果修改了自身原有属性状态;另一类是施加于其他对象的操作,即把产生的输出结果作为消息发送的操作。

(4)接口:主要指对外接口,是指对象受理外部消息所制定操作的名称集合。

一般来说,现实世界中可以独立存在的、能够被区分的一切实体(事物)都是对象。例如,学生、教师、电视汽车等都是对象。每个对象有其自身的数据,例如学生有学号、性别、年龄、年级、专业和成绩等。对象的数据值可因施加于该对象上的行为动作(即操作)而变更,如根据学生升留级的情况改变学生的年级数据。

我们所研究的对象,只是现实世界中实体或概念在计算机中一种抽象模型化的标识。在这种抽象事物中封装了数据和操作,通过定义属性和操作来描述其特征和功能,通过定义接口来描述其地位及与其他对象的相互关系,从而形成一个动态的对象模型。对象的本质就是数据与操作的封装。

在面向对象开发方法中,对象就是一些可重用部件,是面向对象程序设计的基本元素。

(二)类

类,又称为对象类,是具有相同或相似结构、操作和约束规则的对象组成的集合,是一组对象的属性和行为特征的抽象描述。或者说,是具有共同属性、共同操作方法(性质)的对象集合,包括标识、继承、数据结构、操作和接口。

(1)标识:是类的名称,用以区分其他类。

(2)继承:是描述子类承袭父类的名称,以及继承得到的结构与功能。

(3)数据结构:是对该类数据组织结构的描述。

(4)操作:指该类通用功能的具体实现方法。

(5)接口:指面向其他类的统一的外部通信协议。(www.daowen.com)

类具有层次性。相对上层的是父类,相对下层的是子类。父类是高层次的类,表达共性;子类是低层次的类,表达个性。子类通过继承机制获得父类的属性和操作,同时还可以扩充定义自己的属性和操作。

例如,电视机、电话、计算机等都是电子产品,它们具有电子产品的公共特性,当定义电视机类、电话类和计算机类时,为避免它们公共特性的重复编码,可将这些电子产品的公共特性定义为电子产品类,将电视机、电话、计算机定义为它的子类。电子产品类具有型号、价格、颜色等属性,计算机类则可以通过继承获得这些属性,并扩充自己的属性,如内存大小、硬盘容量等属性。

(三)消息

客观世界的各种事物都不是孤立的,而是相互联系、相互作用的。实际问题中的每一个个体也是相互联系、相互作用的,个体之间的相互联系反映了问题的静态结构,相互作用则反映了问题的动态变化。为能够反映出对象或对象类之间的相互联系和作用,就需要在它们之间发布、传递消息,即向其他对象发出服务请求。

消息是为了完成某些操作而向对象发送的命令和命令说明。它作为对象之间相互作用、相互协作的一种机制,对象之间的相互操作、调用和应答是通过发送消息到对象的外部接口来实施的。

当一个消息发送给某个对象时,包含要求接受对象去执行某些活动的消息,接收到消息的对象经过解释,然后予以响应,这种通信机制叫做消息传递。

(四)继承

继承是指一个类因承袭而具有另一个类的能力和特征的机制或关系。父类具有通用性,而子类具有特殊性。子类可以从其父类甚至祖先那里继承方法和属性。利用继承,只要在原来类的基础上修改、增补、删减少量的数据和方法,就可以得到子类,然后生成不同的对象实例。

继承是面向对象描述类之间相似性的重要机制。在现实世界中,大量的实体都存在一定程度的相似性,不仅在对系统类进行管理的时候,在定义新的类的时候也希望通过利用这种相似性来简化工作,并重用以前的工作。继承的重要意义在于,它简化了人们对事物的认识和描述。例如,我们认识了汽车的特征以后,在考虑客车时,只要我们知道客车也是一种汽车并理所当然地具有汽车的全部特征,就只需把精力用于发现和描述客车独有的那些特征即可。

继承具有传递性,继承性使得相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余信息,使得对软件的修改比过去容易得多。继承性使得用户在开发新的应用系统时不必完全从零开始,可以继承原有的相似系统的功能或者从类库中选取需要的类,再派生出新的类以实现所需要的功能。所以,继承的机制主要是支持程序的重用和保证接口的一致性。

(五)封装

封装,又称信息隐藏,是指把对象及对象的方法、操作的实现封闭在一起,对象的封装性是面向对象技术的一个重要的特征。这实际上是一种信息隐蔽技术,使对象的使用者只能看到封装界面上的信息,对象的内部是隐蔽的。

封装的标准是:具有一个清楚的边界,对象的所有私有数据、内部程序(成员函数)细节被固定在这个边界内;具有一个接口,用于描述对象之间的相互作用、请求和响应;对象内部的实现代码受封装壳的保护,其他对象不能直接修改本对象拥有的数据和代码。

继承和封装并不矛盾。封装指的是将属于某类的一个具体的对象封装起来,使其数据和操作成为一个整体;而继承是对类而言。从另一角度看,继承和封装机制还具有一定的相似性,它们都是一种共享代码的手段:继承是一种静态共享代码的手段,而封装机制所提供的是一种动态共享代码的手段。例如,录音机这个对象具有封装性,电子线路、机械部件等都被封装在录音机内部,而向外部提供了一些接口,如Play键(按下后可播放歌曲)、Stop键(按下后音乐停止)。

(六)多态

不同对象收到同一消息后可能产生完全不同的结果,这种现象称为多态。在使用多态时,用户可以发送一个通用消息,而实现的细节则由接受对象自行决定,这样同一消息就可以调用不同的方法。多态的实现受到继承性的支持。利用类继承的层次关系,把具有通用功能的消息存放在较高层次,而实现这一功能的不同行为放在较低层次,使得在这些低层次上生成的对象能够给通用消息以不同的响应。多态性的本质是一个同名称的操作可对多种数据类型实施操作的能力,即一种操作名称可被赋予多种操作的语义。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈