《面向对象程序设计概述》牛咏梅

haitaoli haitaoli     2023-01-04     240

关键词:

面向对象程序设计概述

牛咏梅

(南阳理工学院 河南 南阳 473000)

摘要: 分析传统程序设计方法与面向对象程序设计方法之间的差别,重点分析了面向对象程序设计方法的特点,介绍了面向对象程序设计 方法的步骤及其优点。

关键词: 面向对象程序设计; 对象; 封装; 继承

Abstract: To analyse the difference of procedure - oriented programming and object - oriented programming. emphasize introduce the characteristics ,steps and advantages of OOP. key words: Object- Oriented Programming; Object; encapsulation; inheritance

 

面向对象技术引起了程序设计方法学的一场革命, 它已经替代面向过程的程序设计技术, 成为当今计算机应用开发领域的主流技术。

 

一、面向过程程序设计与面向对象程序设计的比较

传统的程序设计技术是面向数据过程的设计方法,注重算法的描述,回答的是“做什么、怎么做”的问题。这种方法把数据和过程作为相互独立的实体,数据代表问题空间中的客体,用于表达实际问题中的信息;程序代码则用于处理这些数据。

面向对象的设计方法与传统的面向数据过程的方法有本质不同。面向对象的程序设计方法注重需求分析和设计反复,回答的是“用何做、为何做”的问题,它使程序员摆脱了具体的数据格式和过程的束缚,可以集中精力研究和设计所要处理的对象。新的对象类可以通过继承已存在的对象类的性质而产生,因此,这样实现的可重用性是自然的和准确的。采用面向对象的方法表示知识,不仅表达的能力强,可以表示相当广泛的知识,能够描述非常复杂的客观事物,而且具有模块性强、结构化程度高、便于分层实现,有利于设计、复用、扩充、修改等一系列优点。因此,面向对象的程序设计方法在知识处理与专家系统等在人工智能领域中的应用前景是光明的、乐观的。

 

二、面向对象程序设计语言中的基本概念

1. 对象

对象是对象式系统中运行时刻的基本成分,它是属性和行为的封装体,其中还包括和其他对象进行通信的设施。对象有三种不同含义:实在对象、问题对象和计算机对象。实在对象是现实世界中存在的实体;问题对象是实在对象在问题域中的抽象,用以根据需要,完成某些行为;计算机对象是问题对象在计算机系统中的表示,它是数据和操作的封装通信单位。因此,对象式语言中的对象是指计算机对象。

2. 类

类是对一组具有相同数据和相同操作的对象的描述,也就是说类是一组对象的抽象概括。其作用有:一是作为对象的描述机制,刻划一组对象的公共属性和行为;二是作为程序的基本单位,它是支持模块化设计的设施,并且,类上的分类关系是模块划分的规范标准。类有三部分组成:数据、操作和接口。数据刻划对象的状态,操作刻划对象的行为,类中所有数据均为私有,接口使操作对外可见。

3. 消息

消息是对象与对象之间可以传递信息,所传递的信息即为消息。它要求某个对象执行类中所定义的某个操作的规格说明,由三部分组成:接受消息的对象、消息选择子(又称为消息名)、零个或多个变元(实参)。

 

三、面向对象程序设计语言的特性

1. 抽象

抽象就是忽略问题的细枝末节,以便更充分地注意与当前目标有关的方面。抽象并非是对问题全面的描述,而只是选择其中核心的、共性的、能说明其性质的关键性问题,而非共性及细节部分可留给低级的派生类来解决。比如, 我们要设计一个学生成绩管理系统,考察学生这个对象时, 我们只关心他的班级、学号、成绩等, 而不用去关心他的身高、体重这些信息。抽象包括两个方面, 一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个实体看待,尽管这个操作实际上可能由一系列更低级的操作完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。

2. 封装性

封装是面向对象的特征之一, 是对象和类概念的主要特性。封装是把过程和数据包围起来, 对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念, 即现实世界可以被描绘成一系列完全自治、封装的对象, 这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性, 则有必要决定这些特性的可见性, 即哪些特性对外部世界是可见的, 哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常, 应禁止直接访问一个对象的实际表示, 而应通过操作接口访问对象, 这称为信息隐藏。事实上, 信息隐藏是用户对封装性的认识, 封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性, 使得程序维护修改较为容易。对应用程序的修改仅限于类的内部, 因而可以将应用程序修改带来的影响减少到最低限度。封装、抽象和信息隐藏是用来降低软件复杂性的重要技术。

3. 继承性

继承是一种联结类的层次模型, 并且允许和鼓励类的重用, 它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生, 这个过程称为类继承。新类继承了原始类的特性, 新类称为原始类的派生类( 子类) , 而原始类称为新类的基类( 父类) 。派生类可以从它的基类那里继承方法和实例变量, 并且类可以修改或增加新的方法使之更适合特殊的需要。这也体现了大自然中一般与特殊的关系。继承性很好的解决了软件的可重用性问题。比如说, 学生类, 所有的学生可以看作是从同一个学生类派生出来的, 但是每一种学生的具体表现行为各有不同, 这是由于派生了不同的子类, 各个子类添加了不同的特性。继承对软件开发有许多的好处:

(1)软件复用性:如果一个操作是从另一个类继承来的,这个操作的所有源代码不用重写。

(2)代码复用:面向对象程序设计中存在多层次的代码复用,在一个层次上,许多不相干的程序员及项目可以使用的相同的类。

(3)界面的一致性:当许多类都从同一类继承时,在所有情况下,这些类继承的操作都是相同的,这样就很容易保证相似的类的界面也相似。

(4)快速原型技术:如果一个软件系统的大部分都可以由可复用的成分(例如类库等)构成,那么开发中的大部分精力就可以花在理解系统中新的以及特殊的部分。这样软件系统开发变得快速简单,这种开发叫做快速原型技术。

4. 多态性

在程序设计语言中多态性指相同的语言结构可以代表不同类型的实体或者对不同类型的实体进行操作。在面向对象程序语言中,对于类和对象之间的继承关系有一种独特的多态现象;如果类P 是类 S 的父类, 则子类 S 的一个对象 s 可以用类 P 的一个对象 p 所使用的任何地方,这就意味着一个公共的消息集(即操作)可以送到类 p和类 s 的对象上,这正体现了多态性。多态性与语方的运行链接有关,运行时链接表示系统在运行期间根据接收对象的类型将一个选择器和实现它的特定方法链接在一起,这种链接方式比起编译时链接在实现多态性方面具有很大的方变性和灵活性。

多态性的优点在于:高层代码(算法)只写一次,而通过提供不同的低层服务来满足复用的要求。在面向对象程序设计中,各种多态性方法以及其它方法相组合使用可以大大提高代码复用及共享。面向对象程序设计方法克服传统程序设计方法的大部分缺点,目前出现了很多面向对象的程序设计语言,例如 VC++, Object Pascal Visual Basic 等。

 

四、面向对象的程序设计步骤及优点

面向对象软件开发的主要目的是用可重用软件分解基类和用子类加快问题求解,缩短开发时间和减少软件开发费用;通过改变一个或多个类的实现,使其影响局部化,从而降低软件维护费用。其步骤略述为:

1.选择主要数据对象;

2.定义每个对象能够接收和发送的消息;

3.说明为实现每个对象所必须的数据元素;

4.用小说明书说明每个对象的方法;

5.最终优化整个设计。

 

它的优点在于:

1.易于维护

2.可扩充性

3.代码重用

 

五、结语

从上面的概述我们可以看出, 面向对象程序设计成为现代编程技术的一个重要组成的原因。从面向过程到面向对象是程序设计的一个飞跃。人们之所以要采用面向对象的程序设计技术, 其目的是:

1.提高程序的运行效率

2.提高程序设计工作的效率

3.提高程序的可维护性

 

运用面向对象技术不是必须的, 但是对于一个大型复杂应用系统的开发, 如果采用了面向对象技术, 则开发效率会大大提高。

 

参考文献:

[1] 徐家福等.对象式程序设计语言[M].南京: 南京大学出版社.1992.

[2] 贾洞, 杨小锋.面向对象技术中若干问题的探讨[J].小型微型计算 机系统.1998.

[3] 全柄哲.面向对象软件规格语言的设计[J].软件学报.1995.

[4] [美] Setphen Prata. C++ PrimePlus 中文版(第 4 版)[M].孙建春译. 北京: 人民邮电出版社, 2002.

面向对象思想初识概述

概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。... 查看详情

面向对象程序设计方法概述

(1)面向过程与面向对象的比较 面向过程程序设计方法(C语言)   分析出要解决所需要的步骤,然后用函数把各步骤逐个实现,运行时依次调用各个函数即可。  程序=算法+数据结构 面向对象程序设计方... 查看详情

面向对象相关概述

...象概述一、结构化编程与面向对象编程的区别   在程序设计的早期,程序用流程图和自顶向下的方法设计。采用这种设计方法,程序员会将一个大的问题分解成更小的任务,然后为每个更小的任务编写一个过程(或函数)... 查看详情

面向对象设计原则-概述

  对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可... 查看详情

java面向对象概述和三大特性

...。 1、面向对象思想  面向对象编程是当今主流的程序设计思想,已经取代 查看详情

java面向对象概述和三大特性

...。 1、面向对象思想  面向对象编程是当今主流的程序设计思想,已经取代 查看详情

13.面向对象的概述

1、面向对象概述:  (1)面向对象含:面向对象分析(OOA);面向对象设计(OOD);面向对象的编程(OOP);  (2)通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承、封装、多态,... 查看详情

面向对象程序设计概述(金老师第一讲)

EnvironmentSetUpwindows的版本(内存和硬盘)+安装断点续传软件(飞讯,可以暂停后继续下载)+虚拟光驱软件(DAEMONTools读取下载的.ISO光盘映像文件)CSharpandDotNetC#编程语言,作者:AndersHejlsberg,.NET微软开发的面向对象的软件开发和... 查看详情

面向对象编程原则(01)——概述

...ff1a;付政委《HeadFirst设计模式》作者:埃里克·弗里曼面向对象编程原则概述在软 查看详情

面向对象编程原则(01)——概述

...ff1a;付政委《HeadFirst设计模式》作者:埃里克·弗里曼面向对象编程原则概述在软 查看详情

面向对象设计原则概述

对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计... 查看详情

一面向对象定义

...由来一、概述1940年以前:面向机器   最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数据。简单来说,就是直接编写0和1的序列来代表程序语言。例如:使 查看详情

面向对象思想概述

java是一门面向对象设计的语言,面向对象是什么呢?是一种思想,一种解决问题的手段。 面向对象与面向过程  面向对象与面向过程其目的都是解决问题    而面向对象针对点较为宏观,类似分而治之的解... 查看详情

java面向对象编程概述

一、01.软件开发经历周期:软件分析:分析问题领域,了解客户的需求软件设计:确定软件的总体结构,把整个软件系统划分为大大小小的多个子系统,设计每个子系统的具体结构软件编码:用选定的编程语言来编写程序代码,... 查看详情

十面向对象分析和设计全流程概述

一个项目前期分析分为管理流程和技术流程。管理流程是软件工程范畴,属于项目管理。管理流程常见的有瀑布模型、螺旋模型、迭代开发、敏捷,RUP等。管理流程主要是指导项目经理如何管理项目用的。知道了管理流程,并不... 查看详情

06.01_面向对象(面向对象思想概述)

###06.01_面向对象(面向对象思想概述)(了解)*A:面向过程思想概述 *第一步 *第二步*B:面向对象思想概述 *找对象(第一步,第二步)*C:举例 *买煎饼果子 *洗衣服*D:面向对象思想特点 *a:是一种更符合我们思想习惯的思想 *b:可以将复杂的... 查看详情

java基础06面向对象

1.面向对象思想概述面向过程思想概述第一步第二步面向对象思想概述找对象(第一步,第二步)举例买煎饼果子洗衣服面向对象思想特点是一种更符合我们思想习惯的思想可以将复杂的事情简单化将我们从执行者变成了指挥者角... 查看详情

第1章编译概述1.1程序设计语言

...va、C++、C#脚本语言:HTML、JavaScript、python(面向对象)➢各种程序设计语言都有自己的语法和语义体系,其编译程序根据这种语言的语法和语义将其翻译成机器能够接受的机器语言;➢然而,从本质上来说。程序设计语言是按 查看详情