精华内容
下载资源
问答
  • 面向对象与面向过程的本质的区别

    万次阅读 多人点赞 2018-01-10 20:19:04
    如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是什么,那么就花费一点时间来研读一下这篇博客,你一定会有很大的收获的! 一、面向对象与面向过程的区别 面向过程就是分析出解决问题所...

    前言:

    如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是什么,那么就花费一点时间来研读一下这篇博客,你一定会有很大的收获的!

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

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

    可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

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

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

    上述的内容是从网上查到的,觉得这个例子非常的生动形象,我就写了下来,现在就应该理解了他俩的区别了吧,其实就是两句话,面向对象就是高度实物抽象化、面向过程就是自顶向下的编程!

    二、面向对象的特点

    在了解其特点之前,咱们先谈谈对象,对象就是现实世界存在的任何事务都可以称之为对象,有着自己独特的个性

    这里写图片描述
    属性用来描述具体某个对象的特征。比如小志身高180M,体重70KG,这里身高、体重都是属性。
    面向对象的思想就是把一切都看成对象,而对象一般都由属性+方法组成!

    属性属于对象静态的一面,用来形容对象的一些特性,方法属于对象动态的一面,咱们举一个例子,小明会跑,会说话,跑、说话这些行为就是对象的方法!所以为动态的一面, 我们把属性和方法称为这个对象的成员!

    :具有同种属性的对象称为类,是个抽象的概念。比如“人”就是一类,期中有一些人名,比如小明、小红、小玲等等这些都是对象,类就相当于一个模具,他定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化,小明就是人的一个实例化!我们在做程序的时候,经常要将一个变量实例化,就是这个原理!我们一般在做程序的时候一般都不用类名的,比如我们在叫小明的时候,不会喊“人,你干嘛呢!”而是说的是“小明,你在干嘛呢!”

    面向对象有三大特性,分别是封装性、继承性和多态性,这里小编不给予太多的解释,因为在后边的博客会专门总结的!

    三、面向过程与面向对象的优缺点

    很多资料上全都是一群很难理解的理论知识,整的小编头都大了,后来发现了一个比较好的文章,写的真是太棒了,通俗易懂,想要不明白都难!

    用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,北京叫盖饭,东北叫烩饭,广东叫碟头饭,就是在一碗白米饭上面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比较贴切的。

    蛋炒饭制作的细节,我不太清楚,因为我没当过厨师,也不会做饭,但最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。

    蛋炒饭的好处就是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。

    到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说是各有所长。如果大家都不是美食家,没那么多讲究,那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。

    盖浇饭的好处就是"菜"“饭"分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是"可维护性"比较好,“饭” 和"菜"的耦合度比较低。蛋炒饭将"蛋”“饭"搅和在一起,想换"蛋”"饭"中任何一种都很困难,耦合度很高,以至于"可维护性"比较差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。
      
    看了这篇文章,简单的总结一下!

    面向过程

    优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
    缺点:没有面向对象易维护、易复用、易扩展

    面向对象

    优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
    缺点:性能比面向过程低

    展开全文
  • 面向过程与面向对象

    千次阅读 2020-10-29 16:03:24
    面向过程与面向对象什么是面向过程概述:自顶而下的编程模式什么是面向对象概述:将事务高度抽象化的编程模式面向过程与面向对象的区别 什么是面向过程 概述:自顶而下的编程模式 ** 面向过程是一种以过程为中心的...

    什么是面向过程

    概述:自顶而下的编程模式

    面向过程是一种以过程为中心的编程思想。简单点说,就是把问题分解成一个一个的步骤,每个步骤用函数实现,依次调用即可。

    什么是面向对象

    概述:将事务高度抽象化的编程模式

    将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
    通常会把属性、行为等封装成对象,然后基于这些封装的对象及对象的行为进行业务逻辑的实现。

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

    面向过程:面向过程性能比面向过程高。因为类调用时需要实例化,开销比较大,比较消耗资源。
    面向对象:面向对象易维护、易服用、易扩展,性能比面向过程低。

    在这里插入图片描述

    面向过程:面向过程性能比面向对象高??

    展开全文
  • 面向对象和面向过程

    千次阅读 多人点赞 2019-03-07 22:19:30
    一 什么是面向过程?什么是面向对象? 如果面试的时候问面向对象和面向过程的区别,就用Action、Service、 Dao去答。 1.什么是面向过程 仔细思考一下,我们在学习和工作中,当我们去实现某项功能或 完成某...

    一  什么是面向过程?什么是面向对象?

                   如果面试的时候问面向对象和面向过程的区别,就用Action、Service、

            Dao去答。

            1.什么是面向过程

                      仔细思考一下,我们在学习和工作中,当我们去实现某项功能或

            完成某项任务时,是不是会不自觉的按部就班的罗列出我们要做的事

            情?而当我们按着我们罗列的步骤去解决问题时,实质上就是按照面向

            过程的思想去解决问题。我们罗列的步骤就是过程,按照步骤解决问题

            就是面向过程。

                   传统的面向过程的编程思想总结起来就八个字——自顶向下,逐

           步细化!实现步骤如下:

         (1)将要实现的功能描述为一个从开始到结束按部就班的连续的步骤

                (过程);

         (2)依次逐步完成这些步骤,如果某一步的难度较大,又可以将该步

                  骤再次细化为若干个子步骤,以此类推,一直到结束得到想要的

                  结果;

        (3)程序的主体是函数,一个函数就是一个封装起来的模块,可以实

                 现一定的功能,各个子步骤往往就是通过各个函数来完成的,从

                 而实现代码的重用和模块化编程!

                 案例:学生到校报道注册:

                 

                         面向过程,就是按照我们分析好了的步骤,按部就班的依次

                 执行就行了!所以当我们用面向过程的思想去编程或解决问题时,

                 首先一定要把详细的实现过程弄清楚。一旦过程设计清楚,代码

                 的实现简直轻而易举。

            2.面向对象

                       所谓的面向对象,就是在编程的时候尽可能的去模拟真实的现

               实世界,按照现实世界中的逻辑去处理一个问题,分析问题中参与

               其中的有哪些实体,这些实体应该有什么属性和方法,我们如何通

               过调用这些实体的属性和方法去解决问题。

                      现实世界中,任何一个操作或者是业务逻辑的实现都需要一个

               实体来完成,也就是说,实体就是动作的支配者,没有实体,就肯

               定没有动作发生!

                      现在让我们思考下,上述注册报名的每一个步骤都有哪些动

               词?提出 提供 缴 收 获得 分配 增加有动词就一定有实现这个动作

               的实体!

                      所谓的模拟现实世界,就是使计算机的编程语言在解决相关业

              务逻辑的方式,与真实的业务逻辑的发生保持一致!需要使每一个

              动作的背后都一个完成这个动作的实体!(比如三层架构中的Dao、

              Service、Action)

                因为任何功能的实现都是依赖于一个具体的实体的

              “动作|操作|行动”,可以看作是一个又一个的实体在发挥其各自的

              “能力”并在内部进行协调有序的调用过程!

                     当采用面向对象的思想解决问题时,可分为下面几步:

                   (1)分析哪些动作是由哪些实体发出的;

                   (2)定义这些实体,为其增加相应的属性和功能;

                   (3)让实体去执行相应的功能或动作。

              采用面向对象的思想,解决上面的报名问题,应该如下:

              第一步:分析那些动作是由哪些实体发出的

                            学生提出报名

                            学生缴费

                            机构收费

                            教师分配教室

                            班级增加学生信息

                            于是,在整个过程中,一共有四个实体:

                            学生、机构、教师、班级!

                            在现实中的一个具体的实体,就是计算机编程中的一个对

                            象!

              第二步:定义这些实体,为其增加相应的属性和功能

                            属性就是实体在现实世界中的一些特征表现。如:

                            人的属性:姓名、性别、身高、三围、体重、电话号码、

                                              家庭住址、籍贯等

                            手机的属性:品牌、价格、颜色、尺寸、待机时间等

                            功能就是能完成的动作,在面向对象的术语中,动作就叫

                            作方法或者函数。如:

                            人的动作(功能):吃饭、睡觉、学习、打游戏、走路、

                                                             跑步、缴费!

                            手机的动作(功能):打电话、发短信、拍照、打游戏、

                                                                视频、看电影等

                            下图显示了在上述实例中出现的实体以及相应的属性和功

                            能:

                            

              第三步:让实体去执行相应的功能或动作

                             学生提出报名

                             学生缴费

                             学校收费

                             教师分配教室

                             班级增加学生信息

                      所以说,面向过程主要是针对功能,而面向对象主要是针对能

               够实现该功能的背后的实体。面向对象实质上就是面向实体,所以

               当我们使用面向对象进行编程时,一定要建立这样一个观念:万物

               皆对象!

                      面向对象当中又会有面向过程,比如“学校收费这一步”,如果

               比较复杂,就需要细化出多个步骤,这又有点像面向过程 

            3.面向对象和面向过程的比较

                      在我们将面向过程和面向对象讨论完后,会明显的感觉两者之

               间有着很大的区别。面向过程简单直接,易于入门理解,模块化程

               度较低。而面向对象相对于面向过程较为复杂,不易理解,模块化

               程度较高。可总结为下面三点:

                      都可以实现代码重用和模块化编程,但是面对对象的模块化更

               深,数据更封闭,也更安全!因为面向对象的封装性更强!面对对

               象的思维方式更加贴近于现实生活,更容易解决大型的复杂的业务

               逻辑从前期开发角度上来看,面对对象远比面向过程要复杂,但是

               从维护和扩展功能的角度上来看,面对对象远比面向过程要简单!

                      如何选择面向对象还是面向过程,对于一个有着丰富开发经验

               的老手来说,这是个得心应手的过程。而对于一个新手而言,其实

               从两者的对比就可以看出,当我们的业务逻辑比较简单时,使用面

               向过程能更快的实现。但是当我们的业务逻辑比较复杂时,为了将

               来的维护和扩展,还是面向对象更为靠谱点。

            4.在举例子说明面向过程和面向对象的区别,加深理解

               五子棋系统

                    (1)面向过程的设计思路:

                             步骤一:开始游戏

                             步骤二:黑子先走

                             步骤三:绘制画面

                             步骤四:判断输赢

                             步骤五:轮到白子

                             步骤六:绘制画面

                             步骤七:判断输赢,

                             步骤八:返回步骤2

                             步骤九:输出最后结果。

                    (2)面向对象的设计思路:

                             整个五子棋可以分为:

                             * 黑白双方,这两方的行为是一模一样的

                             * 棋盘系统,负责绘制画面

                             * 规则系统,负责判定诸如犯规、输赢等。

                             第一类对象(玩家对象)负责接受用户输入,并告知第二

                             类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了

                             棋子的变化就要负责在屏幕上面显示出这种变化,同时利

                             用第三类对象(规则系统)来对棋局进行判定。

            5.什么是面向对象、什么是面向过程一段比较抽象的解释,有功夫看,

               没功夫拉到

                      面向过程就是分析出解决问题所需要的步骤,然后用函数把这

               些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面

               向对象是把构成问题事务分解成各个对象,建立对象的目的不是为

               了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中

               的行为。

    展开全文
  • 简述面向过程面向过程的思想

    千次阅读 2017-04-15 15:24:15
    面向过程面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地...

    面向过程

    “面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。——百度百科
    通俗地讲,我们在编写代码时,我们看到是一步一步执行的过程——即面向过程。 最典型的就是c语言,其实就是通过函数体现,并不断的调用函数,执行完成过程即可。

    面向对象

    面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。——百度百科
    通俗得讲面向对象是基于面向过程。将过程进行对象的封装。
    面向对象的好处
    1,面向对象是一种更符合人们思考方式的思想。
    2,面向过程中更多的体现的是执行者,面向对象中更多的体现是指挥者。指挥对象做事情。
    3,面向对象将复杂的问题简单化了。
    在面向对象的世界里,万物皆对象

    面试的时候:
    问什么是面向对象?
    阐述三个好处。
    具体化。举例:
    其实面试官您就是按照面向对象的思考在思考问题。
    您本身就可以开发项目,但是项目有可能较大,一个人开发时间长。
    为了提高效率,需要有更多具备专业开发能力的人来帮您做事情。
    这个人就是你所需的一个对象,只要调用这些对象的开发功能就可以完成项目。只要指挥他们做事情就可以了。

    展开全文
  • 面向过程 :分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象 :把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙...
  • 面向对象和面向过程 个人理解 不喜勿喷 : 面向对象的更多的在于关注事物之间的关系, 很清晰的表述自然界事物的关系并总结一般规律, 对象具有的特征,行为都能在面向对象语言中得到很好的体现, 面向对象 的封装特征...
  • 面向过程和面向对象

    2017-08-15 20:28:27
    面向对象和面向过程 什么是面向对象?什么又是面向过程呢?
  • 【思考】再谈面向过程与面向对象

    千次阅读 多人点赞 2019-08-31 14:10:53
    【思考】再谈面向过程与面向对象 在我博客创作早期,写了一篇博文,名字是【Java核心技术卷】面向过程与面向对象对比。 这篇文章试图对比描述了关于 面向过程与面向对象 的内容。为什么还要再谈呢? 一方面...
  • 什么是面向过程编程与面向过程编程语言?面向对象编程相比面向过程编程有哪些优势?1.OOP 更加能够应对大规模复杂程序的开发2.OOP 风格的代码更易复用、易扩展、易维护3.OOP 语言更加人性化、更加高级、更加智能重点...
  • 面向过程 & 面向对象

    千次阅读 热门讨论 2014-12-06 09:59:31
    面向过程 & 面向对象    前面很长一段的时间中我们都接触者面向过程的设计和学习过程,面向过程通俗的说就是从具体的、细节处、从微观处着手研究;而面向对象是先从整体处把握,从宏观处出发,把要研究的东西看成...
  • 面向过程与面向对象的区别

    千次阅读 2019-03-04 17:10:29
    面向过程(Procedure Oriented):以过程为核心,强调事件的流程、顺序,如:C语言。 面向对象(Object Oriented):以对象为核心,强调事件的角色、主体,如:C++、Java。 二、案例 小明起床上班这件事; 从...
  • 面向对象与面向过程语言的区别

    万次阅读 多人点赞 2017-10-24 15:43:41
    计算机语言可以归为面向过程语言和面向对象语言,那么到底什么是面向对象,什么是面向过程呢? 答:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以...
  • 面向过程 概念 面向过程:是一种以事件为中心的编程方式,分析得到问题的解决步骤,按照因果关系,一步步实现,依次进行调用。 优点 性能比面向对象高,因为类的调用时需要实例化开销比较大,消耗资源。当我们主要...
  • 面向对象和面向过程解读

    千次阅读 2019-09-07 19:21:15
    面向过程的范式重点在于设计方法 面向对象的范式将数据和方法结合在一起构成对象,使用面向对象范式软件设计重点在于对象以及对象的操作上 面向对象开发就是不断的创建对象,使用对象,指挥对象做事情。面向对象设计...
  • 面向对象&面向过程

    2015-11-01 16:16:52
    在看ULM视频中再次提到了面向对象技术,之前只是耳闻面向过程,现在又来了个面向对象。看到面向对象时马上想到了面向过程,那么他们之间联系是什么?区别是什么?各自的特点是什么?  好的既然问题来了,那么就解决...
  • 面向对象与面向过程理解

    千次阅读 2016-10-31 20:21:08
    面向对象与面向过程
  • 面向对象/面向过程

    2017-03-15 12:35:40
    面向对象 “面向对象”(英语:Object Oriented,简称OO)是一种以事物为中心的编程思想。 面向对象程序设计(英语:Object-...面向对象时相对于面向过程而已的(c则是一个典型的面向过程的语言),站在面向对象的
  • 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。  面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了...
  • 面向对象与面向过程

    2016-08-21 20:50:56
    1、(函数与数据是否分离)面向过程的程序设计是采用函数来描述对数据的操作,但又将函数与其操作的数据分离开;面向对象的程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。 2、面向过程程序设计...
  • 编程语言面向对象与面向过程

    千次阅读 2019-04-09 20:57:30
    面向对象就是高度实物抽象化、面向过程就是自顶向下的编程。 假设有一个问题,刷抖音。 面向过程:打开手机,打开app,点击视频。 面向对象:整个过程可以分开为1:玩的人。 2:手机。 3:app 可以明显地看出,面向对象...
  • python·面向对象和面向过程

    千次阅读 2019-01-11 19:48:56
    面向对象和面向过程理解 面向过程和面向对象都是用来解决问题的,只是解决问题的思路不同 面向过程可以理解为亲力亲为,在程序中面向过程编程就是函数之间的一个相互调用,一函数为基本结构使用 面对对象可以理解为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,003
精华内容 28,801
关键字:

面向过程