zoukankan      html  css  js  c++  java
  • 面向对象与面向过程的区别

    这一周一直在参加学校团队的培训,学习C#的知识,作为一个初窥门径的菜鸟,以下是我对面向对象与面向过程二者差别的一些个人理解,希望大家批评指正。

    面向过程:

    将一件事情按步骤进行,具体到每个操作该如何进行,而且是各种操作混杂在一起,作小小修改可能会改动甚多,可拓展性不好,后期也不易于维护。

    面向对象:

    引入了对象一说,对象中包含属性和方法,属性是用作描述的性质对象,而方法则是描述对象做的动作。譬如说我创建了一个animal的抽象类,并创建一个chicken的派生类继承animal类,在chicken类中定义了Age、Weight等属性和LayEgg、Run等方法,然后,在Main函数中new一个chicken类的对象mychicken出来,那么这个对象便有了自己的属性(年龄、重量等等),它还能生蛋、跑等等,在往后的代码中,我可以让这个mychicken对象生蛋,让它跑,而实现这些功能只需调用对象的方法,具体实现功能的代码已经封装好并存放在类中。

    通过对象,可以把各种不同的操作分类处理。以对象为单位,来完成一系列的动作。就如:我要开车从广州到佛山,如果是面向过程,那么我就要把目光放在每一个细小的动作,从插钥匙、开锁、拉手刹、开启引擎到踩油门等等一系列动作,还有如何行驶等等;但如果是面向对象,我只需要new一个对象“车”,而这个对象里包含了汽油量、水量等等属性,也包含了“开车”、“行驶”、“停车”等等方法,而插钥匙、开锁、拉手刹、开启引擎和踩油门等等开车的行为则写在方法“开车”中(按步骤执行),new了对象“车”后,便可以执行方法“开车”,然后执行方法“行驶”到佛山,到达后执行方法“停车”,至于其中一系列细节的动作,因为都已经封装好了,用户(我)则不需要关心。

    因而,面向对象可拓展性更好,在后期易于维护。

    这有些类似于C语言中的函数调用,在函数中,我们可以写入一连串的代码、步骤,然后通过调用来实现功能,其实这就相当于写在类中的方法,类可以有多个方法,且可以有描述类的属性,这比起单纯调用函数会更加有“特征性”。而且类可以有静态值,可以不new对象直接调用其方法;更有继承、多态,这比起单纯调用函数的功能更多。

    在网上还看到有个用五子棋的运作来讲解两者差别的文章,大家不妨可以看看。

  • 相关阅读:
    解决ajax无法给js全局变量赋值的问题
    jquery对象和dom对象
    js浏览器调试
    elastic search使用
    elastic search远程测试
    elastic search安装与本地测试
    jQuery常用技巧
    Jquery操作cookie
    HTML特殊字符编码对照表
    DpQuery.js
  • 原文地址:https://www.cnblogs.com/dgjamin/p/3203882.html
Copyright © 2011-2022 走看看