面向对象和面向过程有什么区别
面向对象和面向过程的区别:
1. 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
?
2. 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
3. 例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。
把上面每个步骤用分别的函数来实现,问题就解决了。
4. 而面向对象的设计则是从另外的思路来解决问题。
整个五子棋可以分为?1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
5. 可以明显地看出,面向对象是以功能来划分问题,而不是步骤。
同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。
而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。
什么是面向过程程序设计
区别:
面向对象 注重对数据的使用。
试图把数据和对其的操作封装在一起(类),并且尝试去自动处理一些不同的函数的调用工作(多态,重载等),以减轻对函数的依赖。
面向过程 则注重对函数(功能模块)的应用,这些年也有一些面向函数的语言开始复苏(如F#)也可以看出,面向的重点不同,也各有领域和优点。
联系:
联系其实在不同中就已经可以看到。
面向对象只是将数据和函数“打包”,并记入了一些 自动判断并调用“函数”的功能。
所以,面向对象也是建立在函数的基础上,只是减弱了 开发人员对函数的依赖度,将重点转向数据。
什么是“面向过程”和“面向对象”,他们有什么区别?
我们经常所说的“对象”,一般指的是解决信息领域内所遇到问题的方法。
特别是应用软件技术来解决问题的方法。
如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)等。
应用前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。
在面对较复杂的系统,我们可以将它作为一个对象来进行分析。
一个系统(解决某个问题的全套解决方案)作为一个对象,可以由多个部分组成。
同样,这个对象也可以由多个对象组成。
对于同类的事物,可以由一个对象来表示。
这样做的益处是显而易见的,它灵活而高效,可以大大减轻设计人员的工作量,简化实际的模型。
举一个例子。
在关系型数据库的设计当中,我们可以把一个元组当作对象,给它定义一组操作方法。
这些方法将适用于所有元组,从而我们不必在更大的范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向本身的方法,它们“自己”可以“解决”自己的问题。
更上一层的对象可以是一个表、视图等。
表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。
从这个层面上讲,它也只需要做“自己”的事情,因为有元组对象的支持,它无须去考虑像元素是否合法这类的事情。
甚至,有时为了满足我们还可以将元素或表群当作时对象并定义它们自己的方法。
这样,更能显示面向对象的优势。
面向过程的过程
面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际地实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法.对比面向过程,面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织.比如拿学生早上起来的事情来说说这种面向过程吧.粗略的可以将过程拟为:
(1)起床
(2)穿衣
(3)洗脸刷牙
(4)去学校
而这4步就是一步一步地完成,它的顺序很重要,你只须一个一个地实现就行了.而如果是用面向对象的方法的话,可能就只抽象出一个学生的类,它包括这四个方法,但是具体的顺序就不能体现出来.
C++与C语言的区别 ,,,面向过程是什么意思
C++和C的差别还是比较多的。
初学的话,可以认为C++是C的超集,除了支持C的面向过程,还支持面向对象编程。
面向过程就是以过程为中心的编程思想。
分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
以公共汽车为例,在面向过程的思想里,汽车启动是一个事件,汽车到站是另一个事件。
在编程序的时候我们关心的是某一个事件,而不是汽车本身,所以要分别对启动和到站编写程序。
面向对象是一种以事物为中心的编程思想。
以公共汽车为例,我们关心的是由汽车抽象成的对象,这个对象有自己的属性,像轮胎、颜色等;有自己的方法,像象启动、行驶等,方法是汽车的行为,而不是汽车的每个事件。
面向对象需要建立一个汽车的实体,由实体引发事件,所以要分别针对汽车的属性和行为编写程序。
什么是面向过程?什么是面向对象?
比如你现在要写一个 某个人在打球的 程序
面向过程:
你写一个函数是用于打球的,然后把某个人作为参数传进去函数里,结果那个人就打球了。
这是以计算机的思路来设计的。
面向对象:
你编写了一个人类的类,然后在这个类里面实现一个打球的方法,这样每个人类的实例都具有打球的能力。
然后你把那个要打球的人实例化出来,就可以直接调用它的打球方法,让他打球。
这是以人思考问题的方式来设计的。