什么是面向对象的程序设计

作者&投稿:池新 (若有异议请与网页底部的电邮联系)
什么是面向对象的程序设计语言?~



什么是面向对象的设计思想?也许有不少初学者对这个概念还有许多不明白的地方,
特别是这个处于新旧思想交替的时代,许多人刚刚学完现在看来是快要淘汰的只是面向过程的

语言。他们的脑子还没有脱离面向过程思想的束缚,抬头却发现,“面向对象”早已经流行

开来,这个陌生的词漫天飞舞。随便拿起一本流行计算机技术书籍,那里会没有“面向对象”

的字眼!于是心中便惶惑了:什么叫“面向对象”?不感兴趣者,一带而过;有志于在这方

面发展的,匆忙找到一本有关书籍来啃究竟什么是“面向对象”。然而,要突破思想的束缚,

说难也不难,说到要深刻认识却也不容易。笔者在做了一些轻量级的工作后,颇以为有点心

得,不怕贻笑大方,写出已供广大同行批评指正。

“对象(Object)”一词,早在十九世纪就有现象学大师胡塞尔提出并定义。对象是世

界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的

先念的东西,它还包括了人的意愿。举例说明吧。当我们认识到一种新的物体,它叫树,于

是在我们的意识当中就形成了树的概念。这个概念会一直存在于我们的思维当中,并不会因

为这棵树被砍掉而消失。这个概念就是现实世界当中的物体在我们意识当中的映象。我们对

它还可以有我们自己的意愿,虽然我们并不需要付诸实现——只要在你的脑中想着把这棵树

砍掉做成桌子、凳子等——我们就把它叫做意向。于是,对象就是客观世界中物体在人脑中

的映象及人的意向。只要这个对象存在我们的思维意识当中,我们就可以籍此判断同类的东

西。譬如,当我们看到另外一棵树是,并不会因为所见的第一棵树不在了失去了供参照的模

板而不认识这棵树了。当我们接触某些新事物时,我们的意识就会为这些事物确立一个对象

。当然这个过程是怎么形成的,那就不是我们所能讨论的问题了。

上面所说的对象研究的是一般意义上的问题,因而它可以外推到一切事物。我们经常

所说的“对象”,一班指的是解决信息领域内所遇到问题的方法。特别是应用软件技术来解

决问题的方法。如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对

象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)等。应用

前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。在面对较复杂的系统,我

们可以将它作为一个对象来进行分析。一个系统(解决某个问题的全套解决方案)作为一个

对象,可以由多个部分组成。同样,这个对象也可以由多个对象组成。对于同类的事物,可

以由一个对象来表示。这样做的益处是显而易见的,它灵活而高效,可以大大减轻设计人员

的工作量,简化实际的模型。举一个例子。在关系型数据库的设计当中,我们可以把一个元

组当作对象,给它定义一组操作方法。这些方法将适用于所有元组,从而我们不必在更大的

范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向

本身的方法,它们“自己”可以“解决”自己的问题。更上一层的对象可以是一个表、视图

等。表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。从这个层面上讲,

它也只需要做“自己”的事情,因为有元组对象的支持,它无须去考虑像元素是否合法这类

的事情。甚至,有时为了满足我们还可以将元素或表群当作时对象并定义它们自己的方法。

这样,更能显示面向对象的优势。

上面所讨论的可以说是面向对象的分析方法。在具体的设计过程当中,还应该采用适当

的方式。因为面向对象的思想固然很先进,如果做得不好的话,同样不能达到预期的效果。

这主要表现在处理对象与对象的关系上没有做好,对象与对象的层次不分明。如上面所举得

关系型数据库得例子,如果在元组层面上得对象过多得考虑一个表对象得因素,或一个表层

面上对象过多地考虑一个元组对象的因素,甚至去考虑元素层面上的因素,这些都不是好的

面向对象的设计方法。这一点,在语言实现方面,Java比C++更有优势,因为它不允许多

重继承,从而使对象之间的关系更明确。谁也不会否认C++的功能更强大,但是它也要由次

付出巨大代价——当现在代码库发展到一定程度、一定规模时,个对象之间的层次关系将

变得异常复杂,给后继使用者得学习、理解带来很大的困难,应用上很难把握。另外,虽然

C++具备面向对象的处理能力,但它还是保留了很多面向过程的东西。用C++完全可以不用

面向对象的思想来进行程序设计,当然人们不会这样去做——除了那些只是把C++看成是C

扩充的初学者,这就为以后的发展埋下了隐患。在者一方面,Java的限制更多一点。就者一

点还远远不够。搞开发的是人,开发方法是由人决定的。要应用面向对象的方法开发出优秀

的软件,必须要求开发人员具有良好的面向对象的思想。好的工程师可以利用适当的工具开

发出优秀的软件——而不在乎他所使用的语言工具——Java、C++、Object Pascal、Ada等。

要能应用面向对象的思想熟练得做好系统分析、设计、实现(编程),首先要求开发人

员知道什么是对象,什么是面向对象得概念,否则是谈不上应用面向对象得思想搞软件开发

了。希望读者能在看到我在前面的不太严密、详细的论述之后可以对“对象”这个概念由一

个初步的了解,同时也希望有不同看法的同行提出批评。其次,还要求开发人员有比较丰富的开

发经验。否则,光谈理论,那是不能真正体会“面向对象”的含义的。尽管如此,我们还是

可以定出一般的规则的。抛开生命周期的其它阶段,对一个确立的系统一般可以进行以下几

个过程:

一、首先应用面向对象的思想进行系统分析。仔细的划分系统的各个部分,明确它

们之间的层次关系,然后将各个部分作为一个对象进行功能上的分析。例如,要设计一个用

户界面,它可能由几个主要的窗体组成:主窗体MainFrame、功能性子窗体FunctionFrame

以及对话对话框Dialog。其中,MainFrame中可能还包括菜单、工具条、文本框、状态条等

Windows组件。对于要完成一些重要功能的组件,我们可以单独将它作为一个对象看待,在

具体的实现中,用单独一个类来表示。而一些并不是很重要的、只是在过程中需要用到的组

件,就可以将它们集成到其他对象中去。要明确每个对象自己的任务——不要让它有缺陷,

也不能越殂代庖。各个对象之间的关系通过过程、内容、功能等耦合来实现。

实际上,如果你是用Java进行开发,你会发现swing组件本身就非常好用,因为它们

之间的关系是很分明的——你无须去理解分清象C++中的组件那样复杂的关系。在开发你自

己的组件时,也需要力求达到这样的效果。

二、其次时应用面向对象的思想进行系统设计。其实在真正做好了系统分析的工作之后,

进行设计就比较轻松了。这段时间只要进一步确定各个对象的功能以及各个对象之间的关系

。为了能够更好地帮助实现人员明白各个对象之间的关系,可以利用一些工具将这些组件的

关系表示出来,统一建模语言(Uniformed Module Language,UML)就是这样的一种好东

西。它不仅可以现在帮助开发人员了解整个系统,也为以后的维护工作提供一个档案文件,

给以后的工作提供巨大的方便。

面向对象程序设计是一种计算机编程架构。面向对象程序设计的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。面向对象程序设计达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。一项由 Deborah J. Armstrong 进行的长达40年之久的计算机着作调查显示出了一系列面向对象程序设计的基本理论。

面向对象的程序设计是一种将物体对象化的程序设计语言,主要概念就是类的各种概念,类就是一种结构体,它是物体的抽象表示方法,它主要包括属性和方法两个重要内容!打个比方:假如我们把人定义成为一个类,那么我们的身高,体重,等等这些人体特征就相当于类中的属性,而我们吃饭,穿衣服,跑步这些动作就可以看做是类中的方法!

符合OO范型的程序设计,为面向对象程序设计。

OO范型有三条:
1.可以定义和使用“对象”,对象是具有状态和行为的实体,对象封装了属性和方法,程序外部只能通过方法访问对象封装的数据。
2.可以定义和使用“类”,类是一组有共同属性和行为的对象的抽象(按照UML说法是规格说明),对象是类的实例。
3.支持继承、多态等特征。

符合OO范型的程序设计语言可以称为OOP,即面向对象的程序设计语言

这问题问个N遍了````


面向对象的语言主要有哪些
2、c++。C++是一种使用广泛的计算机程序设计语言。它是一种通用程序设计语言,支持多重编程模式,例如过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计和设计模式等。3、c#。C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#以.NET框架类库作为基础,拥有类似Visual Basic的快速...

c++是一种面向什么的程序设计语言?
c++是一种面向对象的程序设计语言。面向对象是相对于面向过程来讲的,面向对象是指把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。面向对象程序设计的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个...

什么是面向对象?
面向对象(ObjectOriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向...

什么是面向对象的程序设计方法
它们一部分是面向基于强制的编程另一部分则是专为处理图形符号设计的每种方法 都有自己特殊的用途适合解决某一类的问题但只要超出了它们力所能及的范围就会显得非常笨拙 面向对象的程序设计则在此基础上跨出了一大步程序员可利用一些工具表达问题空间 内的各种元素由于这种表达非常普遍所以不必受限于特定...

面向对象程序设计语言是什么意思
3、另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。4、如果说传统的面向过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。5、用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。

在C语言中,什么叫做“面向对象”,什么叫做“面向过程”?
功能上的统一保证了面向对象设计的可扩展性。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则...

什么是面向对象开发程序的思想??
同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。面向对象是指一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的集合。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。面向对象的程序设计...

面向对象的程序设计语言是?
相关举例如下:1、Smalltalk:Smalltalk被公认为历史上第二个面向对象的程序设计语言和第一个真正的集成开发环境 (IDE)。由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor, Java...

什么是面向对象技术
问题三:什么是面向对象对象,什么是面向过程,什么是面向对象 面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。它具有抽象性、封装性、继承性及多态性。 面向对象与面向过程程序设计有如下不同: (1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数...

2. 面向过程的程序设计和面向对象的程序设计分别指什么?两者分别有什 ...
一、面向过程概念 面向过程是一种以过程为中心的编程思想,面向过程编程是基于“冯·诺依曼”模型的。在这种模型中,程序与变量一起存储,程序中包含一系列指令,并把这些指令以函数的方式组织起来。特性 自顶向下、逐步求精、模块化 优点 性能比面向对象高,因为类调用需要实例化,开销比较大,比较消耗...

秀峰区17297137939: 面向对象的程序设计 - 搜狗百科
松诚和肝: 所谓面向对象的程序设计,就是把面向对象的思想应用到软件工程中,并指导开发维护软件. 对象是由数据和容许的操作组成的封装体,所谓面向对象,就是基于对象的概念,以对象为中心,类和继承为构造机制,认识了解刻画客观世界以及...

秀峰区17297137939: 面向对象程序设计是什么? -
松诚和肝: 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构.面向对象程序设计的一些显著的特性包括: ·程序设计的重点在于数据而不是过程; ·程序被划分为所谓的对象; ·数据结构为表现对象的特性而设计; ·函数作为对某个对象数据的操作,与数据结构紧密的结合在一起; ·数据被隐藏起来,不能为外部函数访问; ·对象之间可以通过函数沟通; ·新的数据和函数可以在需要的时候轻而易举的添加进来; ·在程序设计过程中遵循由下至上(bottom-up)的设计方法. http://wenwen.sogou.com/z/q736281730.htm 讲解的很详细

秀峰区17297137939: 什么是面向对象程序设计? -
松诚和肝: 面向对象程序设计既吸取了结构化程序设计的一切优点,又考虑了现实世界与面向对象解空间的映射关系,它所追求的目标是将现实世界的问题求解尽可能简单化. 面向对象程序设计将数据及对数据的操作放在一起,作为一个相互依存,不可分...

秀峰区17297137939: 什么是面向对象程序设计呀
松诚和肝: 面向对象的程序设计是一种将物体对象化的程序设计语言,主要概念就是类的各种概念,类就是一种结构体,它是物体的抽象表示方法,它主要包括属性和方法两个重要内容!打个比方:假如我们把人定义成为一个类,那么我们的身高,体重,等等这些人体特征就相当于类中的属性,而我们吃饭,穿衣服,跑步这些动作就可以看做是类中的方法!

秀峰区17297137939: 什么是面向对象程序设计?它与传统的结构化程序设计有什么不同? -
松诚和肝: 可能不是很准确但是简单的理解,面向对象程序设计就是把几乎所有的东西都抽象成类和对象,你的程序实现都是对对象进行处理. 如,面向对象中,你定义一个类--人, class person {方法1; 方法2; .... }; 你只要定义人的一个对象调用人的方法,就知道了人的全部信息和功能 person zhangsan; zhangsan.方法1; zhangsan.方法2;......而面向过程时你必须一步一步的来,定义一个人,你必须从姓名、身高...一步一步来.

秀峰区17297137939: 什么是面向对象程序编程 -
松诚和肝: 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1]发展到一定阶段后的产物.早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题.随着计算机技术的不断提高,...

秀峰区17297137939: 怎么理解面向对象程序设计? -
松诚和肝: 之前写过和这个题目相关的论文,摘选一部分看对您有没有什么帮助: 面向对象程序设计的基本概念:面向对象, 概括地说, 就是把问题抽象为对象, 设置属性(数据) , 指定事件或处理方式(代码) 来达到目的, 强调从问题域的概念到软...

秀峰区17297137939: 8.1.1什么是面向对象的程序设计.ppt -
松诚和肝: 面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流.面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围.如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络...

秀峰区17297137939: 什么叫做面向对象编程? -
松诚和肝: “面向对象”(Object Oriented,简称OO)是一种以事物为中心的编程思想. 面向对象的程序设计(Object-Oriented Programming,简记为OOP) 比如以公共汽车而言. “面向过程”就是汽车启动是一个事件,汽车到站是另一个事件.在编...

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网