为什么说c语言是面向过程的,Java是面向对象的?有什么区别吗?

作者&投稿:仲孙妹 (若有异议请与网页底部的电邮联系)
为什么说c语言是面向过程的,Java是面向对象的?有什么区别吗?~

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

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

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

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

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

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

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

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

来源:http://zhidao.baidu.com/question/2089034.html


Java语言作为面向对象的编程语言,提供了面向对象的四种基本性质:抽象性、封装性、继承性和多态性。万事万物皆对象Java面向对象编程是以人类最好理解的方向去编程(客观世界中的对象为中心)

面向过程的,主要是因为在用C语言的编程时整个计算过程是一步一步体现出来. 面向对象的,主要是体现在编程时有已经定义的对象可以套用. 区别在于:可移植性的好坏.

做一些对比来说吧:

分析 基本构件 方法 工具
---------------------------------
面向过程 基于算法 函数/过程 数据流图、伪代码... ...
面向对象 基于对象 类 UML建模... Rose,viso等
---------------------------------------------------------------

其实我始终认为,不管是面向对象,还是面向过程,都体现了一种软件重用的思想!
只不过面向过程中重用的是过程和函数,但是面向对象重用的是类,一种将数据和处理数据的过程及函数封装在一起的实体,其实面向对象中的过程和函数和面向过程中的分别不是很大,所以数据流图和伪代码还是有用的。
面向对象一个很大的好处就是数据 和方法的封装,由此面向对象的三大特性得到发挥。 ///////////////////////////来源于CDSN


c语言是面向过程的还是面向对象的
两者是兼容的,c是c++的一个子集 c++支持面向对象功能的程序设计语言,而c语言是面向过程的程序设计语言,它不但具有c语言的短小精练,使用方便的特点,还在原来的基础上,使类型更严格,使用更方便。简单来讲,c++是c的进阶,语法基本相同,不过很多用词不同,例如输出语句,c使用的是“prift”,而c++...

C语言C++分别面向过程和对象 过程和对象是什么
C语言是面向过程的,面向过程语言的程序代码=算法+数据结构,而C++和JAVA是面向对象的语言,程序代码=对象+消息。我认为面向对象和面向过程就没有本质的区别,只是使用不同的方法和角度去观察一个世界。软件设计就像写剧本,数据就是角色,流程就是情节,整个软件就象一部电影,面向对象只不过是把数据和对...

c语言是面向过程还是对象
面向过程的,都是一步一步来的。面向对象里面会包括面向过程

C语言是面向对象的吗?
C语言是面向过程的,和VB相差是很大。C++是面向对象的,不过和VB相差也不小。如果想学C系列的,面向对象的,建议学C#。

C语言,里的面向对象是什么意思?
C语言没有面向对象,它是面向过程的.你说的这个是C++,它即面向对象也面向过程.面向对象,简单的说就是你编写的程序需要你面面俱到,全方位的编写.对它进行完整的“描述”.

"C语言和Java语言一样是可以面向对象编程"这句怎么错?
C 语言是面向“过程”的编程语言,Java 是面向“对象”的编程语言。两者的编程法方不同。这个需要“亲自编程实践”之后才能真正的 理解 这种差异,如果只是停留在字面上 就很难理解。希望我的解释对你有点帮助。

c语言与java哪个难学?
其特点是功能强大、易于理解和适用于各种场景。Java的学习难点主要在于其丰富的语法和面向对象编程的概念,以及较为复杂的网络通信和多线程编程等。总的来说,C语言更注重底层操作和硬件相关知识,Java则更注重高层设计和软件开发。两种语言都有各自的特点和难点,取决于你想要应用的领域和开发层次。

C语言是面向过程,C++是面向对象,太抽象了,能否举个例子便于理解_百度...
举个简单的例子,如求2个整数的和。c语言里就是一段代码来实现;c++里这个求和就可以看成是一个对象。

电脑编程是学什么的
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。2、Python Python是一种跨平台的计算机程序设计语言...

C++与C语言的区别 ,,,面向过程是什么意思
C++和C的差别还是比较多的。初学的话,可以认为C++是C的超集,除了支持C的面向过程,还支持面向对象编程。面向过程就是以过程为中心的编程思想。分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。以公共汽车为例,在面向过程的思想里,汽车启动是一...

建华区15673802651: 为什么说“C语言是一种面向过程(?)的程序设计语言”? -
本成肠胃: 面向过程,通俗一点,就是注重事物的发展过程,发展顺序.面向对象,通俗一点,就是注重事物之间的联系.

建华区15673802651: 为什么说c语言是面向过程的,Java是面向对象的?有什么区别吗? -
本成肠胃: 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了.面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个...

建华区15673802651: C语言为什么是面向过程?它不有一个结构体类型的吗?感觉和C++的差不多. -
本成肠胃: c语言是面向结构也就是面向过程,java是纯面向对象,c++是即可面向过程编程也可面向对象编程;这里说的面向过程和面向对象是一种编程思想,具体说就是:面向结构,是把要实现的功能分成很多模块即函数,每个模块承担某一功能,每...

建华区15673802651: 为什么大家都说C语言是面向过程的语言 -
本成肠胃: 大家都说你就信啊 我告诉你啊,c语言就是面向过程.至于为什么,百度

建华区15673802651: 为什么说C编程语言是面向过程的
本成肠胃:面向过程是一种编程思想过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了 比如拿学生早上起来的事情来说说这种面向过程吧.粗略的可以将过程拟为:(1)起床(2)穿衣(3)洗脸刷牙(4)去学校而这4步就是一步一步的完成,它的顺序很重要,你只须一个一个的实现就行了.而如果是用面向对象的方法的话,可能就只抽象出一个学生的类,它包括这四个方法,但是具体的顺序就不能体现出来

建华区15673802651: 浅析c语言和java语言的异同 -
本成肠胃: 楼主这个问题太大了.简单的回答下我的认识吧:1、C语言是面向过程的,Java语言是面向对象的.2、Java语言通过字节码运行在Java虚拟机上(不同的平台有不同的Java虚拟,但是对字节码的翻译执行效果一致)实现跨平台.3、C语言偏向底层,Java更适合网络开发4、Java是站在C、C++基础上,添加了一些好的新特新,去掉了一些旧的,或者危险、繁琐的东西.可以说是C++--.总结:这是一个很有情怀的问题,一言难尽,多多品味吧.详细点的可参见:https://zhidao.baidu.com/question/414128019

建华区15673802651: 怎么理解 C 语言是面向过程的语言,C++ 是面向对象的语言. -
本成肠胃: 1、易语言面向对象,但不完全面向对象; 2、主要是高层开发,底层开发方面远不及汇编语言和C++.

建华区15673802651: c语言是面向对象语言吗? -
本成肠胃: C语言是面向过程的,在其基础之上发展而来的C++,C#才是面向对象的,还有java

建华区15673802651: C语言是一门面向问题的语言吗? -
本成肠胃: (1)C语言是一门面向过程的语言. (2)现在的编程语言一般分为面向过程和面向对象,典型的面向对象的语言是java. (3)面向过程的语言一般来说更加注重编程的过程,也就是处理问题的过程,要求开发人员的逻辑能力更强,面向对象的语言一般更加注重编程的模块化,要求开发人员尽量使用模块化的思维去处理问题.

建华区15673802651: 请问C是面向对象还是面向过程?VB呢? -
本成肠胃: C是面向过程,vb,c++面向对象

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