面向过程语言和面向对象语言有什么区别,两者谁更具优势?
答案:4 悬赏:0
解决时间 2021-02-08 10:18
- 提问者网友:话酸浅沫
- 2021-02-07 11:33
面向过程语言和面向对象语言有什么区别,两者谁更具优势?
最佳答案
- 二级知识专家网友:偏爱自由
- 2021-02-07 13:06
C,fortran等较早的高级语言因为应用环境简单,系统规模较小采取的是面向过程的思路。
总体来说你首先思考的是该干什么,关键字是动词。比如起床、刷牙,吃饭,然后上班。
之后随着系统复杂性提高,C++,java等高级语言,采取了面向对象的思路。
总体来说你首先思考由谁去干,关键字是名词。比如我的生活。然后我具有一些属性,比如能够睡觉,能够清洁,需要饮食,需要工作。之后去调用。我.起床,我.刷牙。
你也可以看出来,这个过程并不是对立的。在面向对象的思路中依然会需要面向过程的思路解决局部问题。不过他可以更好地重用代码。
此外还有lisp等用于工业设计语言的功能型编程范式。究竟采取哪种范式来编程看你解决问题的规模和需求。
总体来说你首先思考的是该干什么,关键字是动词。比如起床、刷牙,吃饭,然后上班。
之后随着系统复杂性提高,C++,java等高级语言,采取了面向对象的思路。
总体来说你首先思考由谁去干,关键字是名词。比如我的生活。然后我具有一些属性,比如能够睡觉,能够清洁,需要饮食,需要工作。之后去调用。我.起床,我.刷牙。
你也可以看出来,这个过程并不是对立的。在面向对象的思路中依然会需要面向过程的思路解决局部问题。不过他可以更好地重用代码。
此外还有lisp等用于工业设计语言的功能型编程范式。究竟采取哪种范式来编程看你解决问题的规模和需求。
全部回答
- 1楼网友:为你轻狂半世殇
- 2021-02-07 16:16
1.设计对象:就是要搞清楚对角包含的数据(属性),如学生对象可能包含学号、姓名、性别、成绩等信息。还要搞清楚对该对象的数据进行的操作有哪些,如:设置类操作set...(设置姓名、设置信息等),取得类操作get...(取得姓名、取得成绩等),还有显示以象操作等。清楚了对象的属性与操作后,就可以按类(像c中结构体)的设计原则,设计对象类了,如:
classcstudent
{
public:
voidsetname(char*name);
voidsetscore(intscore);
char*getname();
intgetscore();
intprintinfo();
...
private:
intxh;
charname[20];
charsex[3];
intscore;
...
};
cstudenta[30];//定义存储30个学生的信息
(2)通知对象完成任务,主要靠“消息”来实现的,具体来讲,消息可以理解为以象的public类的函数(如setname函数),只有public类的属性,对象类的外部函数或对象才能直接使用。
如果设置学生i对象的姓名和成绩,可以在函数中把水消息传递a[i]对角,传递的方法如下:
a[i].setname("zhangshan");
a[i].setscore(80);
等。
对象a[i]收到setname的消息后,把name赋值为zhangshan,把score赋值为80了。
不知这样解释,你能明明白吗?实际上
面向对象编程就是:
对象+对象+对象
而结构化编程是:
数据结构+算法
两种思想的区别是,前者把“数据结构”和“算法”捆绑为“对象类”,后者数据结构与算法是分离的,当数据结构发生变化时,算法必须跟着改变,否则不能正常工作。
- 2楼网友:统治我的世界
- 2021-02-07 15:19
区别方面,面向过程语言最基本的概念是函数,面向过程语言将一个个功能封装成一个个函数。因此程序的耦合度较高。而面向对象语言最基本的概念是对象(数据及其操作的方法)。各个对象负责自己的工作,为其他对象提高功能。相对而言程序的耦合度较低,内聚度高。
优势方面,简单来说,面向过程语言(C语言为代表)编程最大的优点的效率高,所以现在操作系统或者视频编解码(比如H.264)等主要是采用接近底层C语言;
而面向对象语言(Java语言为代表)最大的优点是符合抽象,封装,细节隐藏等基本程序设计的原则。需求分析、程序设计、编码实现等过程可以无缝衔接(利用UML建模)。面向对象的程序在结构上更加健壮和稳定。因此类似淘宝网这些效率和性能的需求不是至关重要(当然也是性能很重要,相比之下更重要的是系统的稳定性、安全性)的后台是用Java写的。
不过这些只有等你做过很多很大很复杂的程序之后才会真正了解两者的区别和优势。如果都是写HelloWorld程序,那两者基本不存在区别。
- 3楼网友:請叫我丶偏執狂
- 2021-02-07 14:16
面向过程关注的是过程,也就是完成一件事,要经过那些步骤,使用那些算法。面向过程的关键就是算法。缺点是必须用计算机的术语来描述我们的问题,而且设计的系统难以维护,最严重的缺点是很难编写大型的应用程序。面向过程就像物理运行学一样只关注过程,不关注研究对象。面向对象在吸取面向过程的优点的同时改变思维方向,与面向过程不同的是面向对象关注重点的是对象,即系统由那些对象构成,行为动作的执行者是谁,承受者是谁。就像物理的应用动量守恒定律一样首先是选择研究对象,然后研究这些对象的相互作用,最后得出结果。应用对象技术,一个系统的复杂性被分解到一些相互协作的对象之上,然后再将这些对象作为系统,再分解,直到分解到我们能够很容易处理的对象为止。应用对象技术使得系统很容易修改维护系统(如果另外一个更优秀的对象能提供某对象的功能,那么此对象就可以取代某对象)。面向对象技术利用对象作为基本粒子来构建系统,所以我们可以利用现有的对象来构建更大的对象,不必重新设计,这使得我们可以用最小的代价构建系统。对象的思象也就是人们通常认知世界的思想。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯