面向过程与面向对象有什么相同点和不同点

作者&投稿:产柿 (若有异议请与网页底部的电邮联系)
面向过程的计算机语言与面向对象的计算机语言有何相同和不同处?~

简单的讲,面向过程的语言,你在思考的时候要替计算机想很多,数据的存贮啊、指针的引用啊 ……面向对象的语言一般把一些底层的操作封装好了,不要我们去想这一部分;
还有就是面向对象的程序设计比较符合人的思考方式,更容易理解,在可扩展性方面,面向对象的程序设计比较容易实现,而且有强大的类库(就是一些写好的工具类)免费给大家使用!

面向过程和面向对象

2009-04-11 22:41(一)先说一下面向过程和面向对象,这是两种思想,它们都能达到用程序来完成一件事情的能力,只不过思维方式不一样而已。

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 算法第一,方法第二。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 方法第一,算法第二。

例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。

而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

功能上的统一保证了面向对象设计的可扩展性。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。

再比如我要把这个五子棋游戏改为围棋游戏,如果你是面向过程设计,那么五子棋的规则就分布在了你的程序的每一个角落,要改动还不如重写。但是如果你当初就是面向对象的设计,那么你只用改动规则对象就可以了,五子棋和围棋的区别不就是规则吗?(当然棋盘大小好像也不一样,但是你会觉得这是一个难题吗?直接在棋盘对象中进行一番小改动就可以了。)而下棋的大致步骤从面向对象的角度来看没有任何变化。

当然,要达到改动只是局部的需要设计的人有足够的经验,使用对象不能保证你的程序就是面向对象,初学者或者很蹩脚的程序员很可能以面向对象之虚而行面向过程之实,这样设计出来的所谓面向对象的程序很难有良好的可移植性和可扩展性。

(二),面向过程是一种直接的编程方法,它是按照编程语言的思路考虑问题。尤其是想C语言这种过程式语言,它就是通过顺序执行一组语句来实现一个功能,这些语句的执行过程就是整个程序。不同的语言解决同一个问题的过程是不一样的。

面向对象是一种抽象度更高的编程方法。它把眼光集中在了要解决问题本身而不是语言上。它的目标是使模块的抽象度更高,可复用性更好。面向对象的目的就是可复用。

面向过程和面向对象的区别并不像人们想象得那么大,面向对象的大部分思想在面向过程中也能体现,但面向过程最大的问题(也许是唯一先天的缺陷)在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃。

还有就是,C,C++,Java这些都是语言,他们之间并没有是不是面向对象的区别。用C同样可以写面向对象的程序,看看Linux的内核代码就知道了。C++,Java一样可以写面向过程的程序,他们之所以叫面向对象的编程语言是因为他们提供的语言特性更易于实现面向对象的编程方法,并不是说他们只能做面向对象编程。
还有就是并不是说面向对象一定优于面向过程。在很多领域是无法实施面向对象的方法,如硬件编程和嵌入式编程这种实时性和效率要求高的领域就无法用到面向对象。面向对象的主要领域还是用在大型,复杂型的软件系统中。
(三)面向对象把数据和对数据的处理方法封装在一起;
而面向过程中,数据和对数据的处理方法是分开的。
(四)而向过程就是对每个过程编程,而面向对象就是把每个对象独立出来,然后表示它们之间的关系(成员函数)。

(五)面向过程的关键就是函数、过程、数据、算法。以C为代表。

面向对象的关键就是继承、重载、多态。以Java、C++,C#为代表。(六)简单的说吧,对象就是类 过程就是顺序,选择,循环、数组、函数 。
面向对象难学,学过了面向过程,也就是给对象打个底,类就是把所有的过程中的顺序,选择,循环、数组以函数的方式封装在一个类里,面向对象的程序就是N个类组成的

楼上如果不是抄袭,那他表达能力是很强的,浅显易懂!


面向过程与面向对象的区别
面向过程与面向对象的区别有:思路不同、特点不同、优势不同。1、思路不同:面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了;而面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程...

面向对象语言与面向过程语言有哪些区别呢?
1、面向过程:是一种以过程为中心的编程思想。都是以什么正在发生为主要目标进行编程。2、面向对象语言:是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。二、特点不同 1、面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些...

面向对象和面向过程有什么区别
面向对象和面向过程的区别:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。例如五子棋,面向过程的设...

面向过程和面向对象的区别
面向过程和面向对象的区别在于思维方式和程序设计的角度。面向过程是一种以步骤和过程为中心的编程范式,它将问题分解为一系列的步骤,通过顺序执行这些步骤来解决问题。在面向过程的编程中,数据和函数是分离的,函数对数据进行操作,数据流动的方式是线性的。面向过程的编程强调的是算法和流程控制,适用于简...

面向过程和面向对象的区别和联系
面向过程和面向对象是编程中的两种主要编程范式,它们有着明显的区别和联系。面向过程是一种关注实现功能的流程和方法的方式,注重执行的过程。而面向对象则是一种基于对象的方法,将数据和操作封装在一起,形成一个整体。两者的区别在于关注点不同,而联系在于都是为了实现特定的功能或目标。解释:面向过程...

面向过程和面向对象的各自优点是什么?
面向过程和面向对象是编程中的两种基本范式,它们各有优点:面向过程的优点:性能:由于面向过程直接对问题进行分解和解决,因此其性能通常较高,特别是在一些性能关键的应用中,比如嵌入式系统或实时系统。简单性:面向过程的编程范式相对简单,因为它直接关注解决问题的步骤,这使得它更易于理解和实现。可...

面向对象和面向过程的区别是什么?
面向对象和面向过程的区别是:一,编程思想不同。面向过程思想顾名思义其实就是面向解决问题的步骤进行编程。面向过程的编程思想总结起来就八个字——自顶向下,逐步细化!面向对象思想就是分析参与问题的有哪些实体,这些实体应该有的属性和方法,通过调用这些实体的属性和方法解决问题。二,编程过程不同。...

编程思想基础:面向对象和面向过程的区别
1、面向对象:向对象开发是一种根本不同于传统的功能分解的设计方法。面向对象的软件分解更接近人对客观事务的理解,而功能分解只通过问题空间的转换来获得。2、面向过程:主要是把事物给对象化,对象包括属性与行为。当程序规模不是很大时,面向过程的方法还会体现出一种优势。参考资料来源:百度百科-面向...

面向过程和面向对象的区别是什么
1、面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。2、面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。3、面向过程是具体的东西,而且面向过程是面向...

面向对象和面向过程的区别
)而下棋的大致步骤从面向对象的角度来看没有任何变化。当然,要达到改动只是局部的需要设计的人有足够的经验,使用对象不能保证你的程序就是面向对象,初学者或者很蹩脚的程序员很可能以面向对象之虚而行面向过程之实,这样设计出来的所谓面向对象的程序很难有良好的可移植性和可扩展性。

运城市18820826369: 面向过程与面向对象有什么相同点和不同点 -
芷狡爱童: 2009-04-11 22:41(一)先说一下面向过程和面向对象,这是两种思想,它们都能达到用程序来完成一件事情的能力,只不过思维方式不一样而已. 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候...

运城市18820826369: 面向过程的计算机语言与面向对象的计算机语言有何相同和不同处? -
芷狡爱童: 简单的讲,面向过程的语言,你在思考的时候要替计算机想很多,数据的存贮啊、指针的引用啊 ……面向对象的语言一般把一些底层的操作封装好了,不要我们去想这一部分; 还有就是面向对象的程序设计比较符合人的思考方式,更容易理解,在可扩展性方面,面向对象的程序设计比较容易实现,而且有强大的类库(就是一些写好的工具类)免费给大家使用!

运城市18820826369: 面向对象编程和面向过程编程分别有什么优点和缺点 -
芷狡爱童: 面向对象三大特点:封装、多态、继承.这三个特性可2113以让我们在写比较大的项目时更5261好的复用代码,比如一个User对象作为用户存在,里面封装了我们所需要的4102id、name等需要的信息.在我们需要的地方获取这个User对象,拿到对应的值就行了1653.面向过程突出一个直接,没那么多弯弯绕,因此回不适合全用面向过程做一个大项目.不过现在讲究是面向过程和面向对象结答合,各有各的优点.

运城市18820826369: 面向过程与面向对象各自的优缺点? -
芷狡爱童: 不太同意楼上观点.一定程度上两者的试用地方不同 对面向对象来说几个主要的: 优: (1)是一种全新的系统分析设计方法(对象、类、结构属性、方法) (2)适用于各类信息系统的开发. (3)实现了对客观世界描述到软件结构的直接转换 ...

运城市18820826369: 软件开发:面向对象与面向过程的异同?谢谢 -
芷狡爱童: 最根本的区别是思维方式截然不同.面向过程是以机器的方式思考问题,将问题拆解成步骤,告诉机器每一步如何去做.面向对象是以人的方式思考问题,将问题抽象成一些对象,以及这些对象应当具备哪些属性和方法,然后通过属性操作和...

运城市18820826369: 面向过程和面向对象的区别和联系 -
芷狡爱童: 区别: 面向对象 注重对数据的使用.试图把数据和对其的操作封装在一起(类),并且尝试去自动处理一些不同的函数的调用工作(多态,重载等),以减轻对函数的依赖.面向过程 则注重对函数(功能模块)的应用,这些年也有一些面向函数的语言开始复苏(如F#)也可以看出,面向的重点不同,也各有领域和优点.联系:联系其实在不同中就已经可以看到.面向对象只是将数据和函数“打包”,并记入了一些 自动判断并调用“函数”的功能.所以,面向对象也是建立在函数的基础上,只是减弱了 开发人员对函数的依赖度,将重点转向数据.

运城市18820826369: 面向对象和面向过程
芷狡爱童: 根据我的个人理解面向对象的语言也可以用于面向过程的方式来编程.但是他们有个区别在于,面向过程是必须注意每个步骤之间的联系,因为没有上一步的正确结论就没有下一步.而面向对象就不会专注于步骤,编程不再和这个有关,但是不代表不能在其中参插面向过程的代码部分.

运城市18820826369: 面向过程与面向对象编程的区别和优缺点 -
芷狡爱童: 面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素.缺点:没有面向对象易维护、易复用、易扩展 面向对象 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点:性能比面向过程低

运城市18820826369: 面向对象编程和面向过程有什么不同 -
芷狡爱童: 面向过程与面向对象编程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,...

运城市18820826369: 面向过程和面向对象程序开发的区别 -
芷狡爱童: 本质都是为了解决问题. 相对来说,面向过程会关注解决问题的一系列步骤.面向对象就显得方便些,只需要调用某个类或者接口的方法即可. 当然,这个类或者接口最终要解决这个问题,还是会实现“面向过程”的功能的,区别在于思维方式不同. 最终都面向过程和面向对象程序开发的区别

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