面向对象与面向过程的区别

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C是面向过程

C++、JAVA是面向对象

面向对象和面向过程的区别

一个博大,一个精深.

总体而言,面向对象简单,面向过程对人员要求素质过高

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

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

艾兰.库伯的《软件创新之路》中提到:

面向过程和面向对象的区别并不像人们想象得那么大

面向对象的大部分思想在面向过程中也能体现

但面向过程最大的问题(也是唯一先天的缺陷)在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃

面向对象的提出正是试图解决这一软件危机

目前看来,似乎有一定成效

但仍任重道远

---------------------------------------------------------------

做一些对比来说吧:

分析基本构件法工具

---------------------------------

面向过程基于算法函数/过程数据流图、伪代码... ...

面向对象基于对象类UML建模... Rose,viso等

---------------------------------------------------------------

其实我始终认为,不管是面向对象,还是面向过程,都体现了一种软件重用的思想!

只不过面向过程中重用的是过程和函数,但是面向对象重用的是类,一种将数据和处理数据的过程及函数封装在一起的实体,其面向对象中的过程和函数和面向过程中的分别不是很大,所以数据流图和伪代码还是有用的。

面向对象一个很大的好处就是数据和法的封装,由此面向对象的三大特性得到发挥

什么是面向对象面向过程面向事件

2010-06-05 11:26

面向过程是在面向对象出现之前,以及之后,甚至至今都应用于程序开发中的程序设计思想。

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

如:

一辆汽车

用面向过程的思想去考虑它应该是这样的:如启动汽车、如起步、加速、刹车、熄火等一个个操作。而汽车在这里并不是我们所关心的。

而面向对象则以汽车为对象,一切由汽车开始,以上的可用操作,即功能是汽车这个对象本身所具有的,做任操作只要告诉汽车就可以了。

C语言是面向过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数。程序运行的顺序都是程序员决定好了的。

C++是面向对象的编程,类是它的主要特点,程序执行过程中,先由主函数进入,定义一些类,根据需要,执行类的成员函数,过程的概念被淡化了(际上过程还是有的,就是主函数的那些语句),类就是对象,所以我们称之为面向对象程序设计。

Visual C++,它是面向事件的编程,程序执行时,不断检测有没有事件(消息)发生,如果有,那么就看有没有对应于事件的函数,如果有就执行这个函数。相比之下,它过程式的味道几乎没有了,但是实际上也是面向过程的,这个过程就是检验有没有事件,只不过这个过程被隐藏了起来。

面向过程是把所有的功能全部在一个大的类里定义出来,当系统庞大时,功能多了,各种操作之间的调用关系也很复杂,当需要修改一个功能时就可引发一连串的改动,使修改和维护成本很昂贵。

而面向对象,对把功能以对象为基本单位进行分类:这就是我们在面向对象程序设计中所常说的类了。我们知道在管理中有一种法叫“授权”,意思是管理者把不同的任务交给相应的人去处理,这样就把责任分发到相应的负责人,管理者只需要记录谁负责什么就可以,哪里出了问题或是没有完成任务,就找相的负责人,只要修改相应的类以及极小部份的其他改动。

面向对象的思想需要大家在实际工作中去慢慢体会,通过和面向过程的对比,我们就能发现它的优越性,进而更好地掌握运用。

对于类的理解

面向对象是在分析和解决问题的时候,将涉及的数据和对数据的操作封装在类中。通过类可以创建对象。比:可以构建一个Circle类,一个表示圆的类它是半径不同的所有的圆的一个抽象的描述。通过类可以创建任意多个对象,这些对象之间是相互独立的。可以由圆类Circle创建圆c1和圆c2。而c1和是彼此独立的对象。

这样,对于事物的观控粒度,由某个具体的对象扩大到一个类。这样符合人们认识事物的习惯。

public class Circle

{

private double R; // 圆的泛权——半径

public void getR(double r) //设置圆的半径

{

R=r;

}

public double getArea() //求圆的面积

{

return 3.14*R*R;

}

}

面向对象和面向过程

1.面向过程程序设计法的实质上是从计算机处理问题的观点来进行程序设计工作:输入——运算——输出。面向过程程序设计者需要变更习惯的思维法以贴近计算机的部工作机理。面向过程程序设计所具有的流的工作性质,试图通过信息流及其转换来认识系统,不仅加大了程序设计的难度,同时亦使得程的可理解性比较差。

面向对象程序设计法中,一种普遍采用的优化法是使用结构化的程序设计法。

面向过程程序设计法一般适宜采用自上而下的设计法。

面向过程程序设计法需要在一开始就全面的,自上而下的设计整个应用程序的架构,因此要求程序设计者对问题域有全面的了解。

面向过程程序设计法很难复用以前已经设计完成的软件。

2.面向对象程序设计是一种自下而上的程序设计法,往往从问题的一部分着手,一点一点地构建出整个程序。面向对象设计一数据为中心,类作为表现数据

相关文档
最新文档