C是面向过程C++、JAVA是面向对象面向对象和面向过程的区别一个博大,一个精深.总体而言,面向对象简单,面向过程对人员要求素质过高面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。艾兰.库伯的《软件创新之路》中提到:面向过程和面向对象的区别并不像人们想象得那么大面向对象的大部分思想在面向过程中也能体现但面向过程最大的问题(也许是唯一先天的缺陷)在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃面向对象的提出正是试图解决这一软件危机目前看来,似乎有一定成效但仍任重道远---------------------------------------------------------------做一些对比来说吧:分析基本构件方法工具---------------------------------面向过程基于算法函数/过程数据流图、伪代码......面向对象基于对象类UML建模...Rose,viso等---------------------------------------------------------------其实我始终认为,不管是面向对象,还是面向过程,都体现了一种软件重用的思想!只不过面向过程中重用的是过程和函数,但是面向对象重用的是类,一种将数据和处理数据的过程及函数封装在一起的实体,其实面向对象中的过程和函数和面向过程中的分别不是很大,所以数据流图和伪代码还是有用的。面向对象一个很大的好处就是数据和方法的封装,由此面向对象的三大特性得到发挥什么是面向对象面向过程面向事件2010-06-0511:26面向过程是在面向对象出现之前,以及之后,甚至至今都应用于程序开发中的程序设计思想。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。如:一辆汽车用面向过程的思想去考虑它应该是这样的:如何启动汽车、如何起步、加速、刹车、熄火等一个个操作。而汽车在这里并不是我们所关心的。而面向对象则以汽车为对象,一切由汽车开始,以上的可用操作,即功能是汽车这个对象本身所具有的,做任何操作只要告诉汽车就可以了。C语言是面向过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数。程序运行的顺序都是程序员决定好了的。C++是面向对象的编程,类是它的主要特点,程序执行过程中,先由主函数进入,定义一些类,根据需要,执行类的成员函数,过程的概念被淡化了(实际上过程还是有的,就是主函数的那些语句),类就是对象,所以我们称之为面向对象程序设计。VisualC++,它是面向事件的编程,程序执行时,不断检测有没有事件(消息)发生,如果有,那么就看有没有对应于事件的函数,如果有就执行这个函数。相比之下,它过程式的味道几乎没有了,但是实际上也是面向过程的,这个过程就是检验有没有事件,只不过这个过程被隐藏了起来。面向过程是把所有的功能全部在一个大的类里定义出来,当系统庞大时,功能多了,各种操作之间的调用关系也很复杂,当需要修改一个功能时就可能引发一连串的改动,使修改和维护成本很昂贵。而面向对象,对把功能以对象为基本单位进行分类:这就是我们在面向对象程序设计中所常说的类了。我们知道在管理中有一种方法叫“授权”,意思是管理者把不同的任务交给相应的人去处理,这样就把责任分发到相应的负责人,管理者只需要记录谁负责什么就可以,哪里出了问题或是没有完成任务,就找相应的负责人,只要修改相应的类以及极小部份的其他改动。面向对象的思想需要大家在实际工作中去慢慢体会,通过和面向过程的对比,我们就能发现它的优越性,进而更好地掌握运用。对于类的理解面向对象是在分析和解决问题的时候,将涉及的数据和对数据的操作封装在类中。通过类可以创建对象。比方:可以构建一个Circle类,一个表示圆的类,它是半径不同的所有的圆的一个抽象的描述。通过类可以创建任意多个对象,这些对象之间是相互独立的。可以由圆类Circle创建圆c1和圆c2。而c1和c2是彼此独立的对象。这样,对于事物的观控粒度,由某个具体的对象扩大到一个类。这样符合人们认识事物的习惯。publicclassCircle{privatedoubleR;//圆的泛权——半径publicvoidgetR(doubler)//设置圆的半径{R=r;}publicdoublegetArea()//求圆的面积{return3.14*R*R;}}面向对象和面向过程1.面向过程程序设计方法的实质上是从计算机处理问题的观点来进行程序设计工作:输入——运算——输出。面向过程程序设计者需要变更习惯的思维方法以贴近计算机的内部工作机理。面向过程程序设计所具有的流的工作性质,试图通过信息流及其转换来认识系统,不仅加大了程序设计的难度,同时亦使得程序的可理解性比较差。面向对象程序设计方法中,一种普遍采用的优化方法是使用结构化的程序设计方法。面向过程程序设计方法一般适宜采用自上而下的设计方法。面向过程程序设计方法需要在一开始就全面的,自上而下的设计整个应用程序的架构,因此要求程序设计者对问题域有全面的了解。面向过程程序设计方法很难复用以前已经设计完成的软件。2.面向对象程序设计是一种自下而上的程序设计方法,往往从问题的一部分着手,一点一点地构建出整个程序。面向对象设计一数据为中心,类作为表现数据的工具,成为划分程序的基本单位。面向对象有以下几个重要特点:(1)客观世界有对象组成(2)对象抽象为类(3)类与类之间存在继承关系(4)对象之间通过传递消息而彼此联系关于面向过程及面向对象编程2010-06-1010:00从事软件开发的人可能同时用过面向过程及面向对象的编码,例如JAVA、C++、C#均是面向对象的语言、C语言是面向过程的语言、PHP既支持面向过程也支持面向对象的功能,面向过程及面向对象均有自己的优缺点,也均有自己的适用范围。面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。缺点:没有面向对象易维护、易复用、易扩展面向对象优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护缺点:性能比面向过程低面向对象程序设计的一些显著的特性包括:.程序设计的重点在于数据而不是过程;.程序被划分为所谓的对象;.数据结构为表现对象的特性而设计;.函数作为对某个对象数据的操作,与数据结构紧密的结合在一起;.数据被隐藏起来,不能为外部函数访问;.对象之间可以通过函数沟通;.新的数据和函数可以在需要的时候轻而易举的添加进来;.在程序设计过程中遵循由下至上(bottom-up)的设计方法。面向对象程序设计在程序设计模式中是一个新的概念,对于不同的人可能意味着不同的内容。我们对面向对象程序设计的定义是面向对象程序设计是一种方法,这种方法为数据和函数提供共同的独立内存空间,这些数据和函数可以作为模板以便在需要时创建类似模块的拷贝。这样的程序设计方法称为面向对象程序设计。从以上定义可以看到,一个对象被认为是计算机内存中的一个独立区间,在这个区间中保存着数据和能够访问数据的一组操作。因为内存区间是相互独立的,所以对象可以不经修改就应用于多个不同的程序中。什么是面向对象程序设计?面向对象程序设计(OOP)技术汲取了结构化程序设计中好的思想,并将这些思想与一些新的、强大的理念相结合,从而给你的程序设计工作提供了一种全新的方法。通常,在面向对象的程序设计风格中,你会将一个问题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数。同时,你会以某种方式将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量。当你定义了一个对象,你就隐含的创建了一个新的数据类型。对象在一个面向对象的系统中,对象是运行期的基本实体。它可以用来表示一个人或者说一个银行帐户,一张数据表格,或者其它什么需要被程序处理的东西。它也可以用来表示用户定义的数据,例如一个向量,时间或者列表。在面向对象程序设计中,问题的分析一般以对象及对象间的自然联系为依据。如前所述,对象在内存中占有一定空间,并且具有一个与之关联的地址,就像Pascal中的record和C中的结构一样。当一个程序运行时,对象之间通过互发消息来相互作用。例如,程序中包含一个customer对象和一个account对象,而customer对象可能会向account对象发送一个消息,查询其银行帐目。每个对象都包含数据以及操作这些数据的代码。即使不了解彼此的数据和代码的细节,对象之间依然可以相互作用,所要了解的只是对象能够接受的消息的类型,以及对象返回的响应的类型,虽然不同的人会以不同的方法实现它们。类我们刚才提到,对象包含数据以及操作这些数据的代码。一个对象所包含的所有数据和代码可以通过类来构成一个用户定义的数据类型。事实上,对象就是类类型(classtype)的变量。一旦定义了一个类,我们就可以创建这个类的多个对象,每个对象与一组数据相关,而这组数据的类型在类中定义。因此,一个类就是具有相同类型的对象的抽象。例如,芒果、苹果和桔子都是fruit类的对象。类是用户定义的数据类型,但在一个程序设计语言中,它和内建的数据类型行为相同。比如创建一个类对象的语法和创建一个整数对象的语法一模一样。数据抽象和封装把数据和函数包装在一个单独的单元(称为类)的行为称为封装。数据封装是类的最典型特点。数据不能被外界访问,只能被封装在同一个类中的函数访问。这些函数提供了对象数据和程序之间的接口。避免数据被程序直接访问的概念被称为数据隐藏。抽象指仅表现核心的特性而不描述背景细节的行为。类使用了抽象的概念,并且被定义为一系列抽象的属性如尺寸、重量和价格,以及操作这些属性的函数。类封装了将要被创建的对象的所有核心属性。因为类使用了数据抽象的概念,所以它们被称为抽象数据类型(ADT)。封装封装机制将数据和代码捆绑到一起,避免了外界的干扰和不确定性。它同样允许创建对象。简单的说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体。在一个对象内部,某些代码和(或)某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。继承继承是可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。例如,知更鸟属于飞鸟类,也属于鸟类。这种分类的原则是,每一个子类都具有父类的公共特性。在OOP中,继承的概念很好的支持了代码的重用性(reusability),也就是说,我们可以向一个已经存在的类中添加新的特性,而不必改变这个类。这可以通过从这个已存在的类派生一个新类来实现。这个新的类将具有原来那个类的特性,以及新的特性。而继承机制的魅力和强大就在于它允许程序员利用已经存在的类(接近需要,而不是完全符合需要的类),并且可以以某种方式修改这个类,而不会影响其它的东西。注意,每个子类只定义那些这个类所特有的特性。而如果没有按级分类,每类都必须显式的定义它所有的特性。多态多态是OOP的另一个重要概念。多态的意思是事物具有不同形式的能力。举个例子,对于不同的实例,某个操作可能会有不同的行为。这个行为依赖于所要操作数据的类型。比如说加法操作,如果操作的数据是数,它对两个数求和。如果操作的数据是字符串,则它将连接两个字符串。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。多态在实现继承的过程中被广泛应用。面向对