面向过程语言和面向对象语言有什么区别,两者谁更具优势?

如题所述

区别方面,面向过程语言最基本的概念是函数,面向过程语言将一个个功能封装成一个个函数。因此程序的耦合度较高。而面向对象语言最基本的概念是对象(数据及其操作的方法)。各个对象负责自己的工作,为其他对象提高功能。相对而言程序的耦合度较低,内聚度高。
优势方面,简单来说,面向过程语言(C语言为代表)编程最大的优点的效率高,所以现在操作系统或者视频编解码(比如H.264)等主要是采用接近底层C语言;
而面向对象语言(Java语言为代表)最大的优点是符合抽象,封装,细节隐藏等基本程序设计的原则。需求分析、程序设计、编码实现等过程可以无缝衔接(利用UML建模)。面向对象的程序在结构上更加健壮和稳定。因此类似淘宝网这些效率和性能的需求不是至关重要(当然也是性能很重要,相比之下更重要的是系统的稳定性、安全性)的后台是用Java写的。
不过这些只有等你做过很多很大很复杂的程序之后才会真正了解两者的区别和优势。如果都是写HelloWorld程序,那两者基本不存在区别。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-06
C,fortran等较早的高级语言因为应用环境简单,系统规模较小采取的是面向过程的思路。
总体来说你首先思考的是该干什么,关键字是动词。比如起床、刷牙,吃饭,然后上班。

之后随着系统复杂性提高,C++,java等高级语言,采取了面向对象的思路。
总体来说你首先思考由谁去干,关键字是名词。比如我的生活。然后我具有一些属性,比如能够睡觉,能够清洁,需要饮食,需要工作。之后去调用。我.起床,我.刷牙。

你也可以看出来,这个过程并不是对立的。在面向对象的思路中依然会需要面向过程的思路解决局部问题。不过他可以更好地重用代码。

此外还有lisp等用于工业设计语言的功能型编程范式。究竟采取哪种范式来编程看你解决问题的规模和需求。本回答被提问者和网友采纳
第2个回答  2012-07-31
做一件事有经过和结果
经过----面向过程语言
结果----面向对象语言
你是注重结果呢?
还是注重过程呢?
还是两者都注重呢?
看你自己了哦追问

是不是说面向过程语言编写的程序用面向对象语言就无法编写了?

第3个回答  2012-08-01
面向过程关注的是过程,也就是完成一件事,要经过那些步骤,使用那些算法。面向过程的关键就是算法。缺点是必须用计算机的术语来描述我们的问题,而且设计的系统难以维护,最严重的缺点是很难编写大型的应用程序。面向过程就像物理运行学一样只关注过程,不关注研究对象。面向对象在吸取面向过程的优点的同时改变思维方向,与面向过程不同的是面向对象关注重点的是对象,即系统由那些对象构成,行为动作的执行者是谁,承受者是谁。就像物理的应用动量守恒定律一样首先是选择研究对象,然后研究这些对象的相互作用,最后得出结果。应用对象技术,一个系统的复杂性被分解到一些相互协作的对象之上,然后再将这些对象作为系统,再分解,直到分解到我们能够很容易处理的对象为止。应用对象技术使得系统很容易修改维护系统(如果另外一个更优秀的对象能提供某对象的功能,那么此对象就可以取代某对象)。面向对象技术利用对象作为基本粒子来构建系统,所以我们可以利用现有的对象来构建更大的对象,不必重新设计,这使得我们可以用最小的代价构建系统。对象的思象也就是人们通常认知世界的思想。
相似回答