面向对象和面向过程是编程语言的分类依据吗,面向对象编程与面向过程编程的区别-

通俗地说 , 就是以 事 为中心 , 还是以 物 为中心 。
面向过程
面向过程的编程思想 , 聚集于解决问题的方法 , 也就是干了什么事(即上面所说的事) 。
采用这种思想进行编程时 , 重点是构建一个个函数 。

  • 举例
比如说 , 你要在窗口上绘制鲜花 。
面向对象和面向过程是编程语言的分类依据吗,面向对象编程与面向过程编程的区别-

文章插图
面向过程的思路多半是这样的 , 书写一个绘制鲜花函数(比如取名为 DrawFlower ) , 带两个参数 , 一个参数用于指定鲜花的颜色 , 另一个参数用于指定鲜花的大小 。
面向对象和面向过程是编程语言的分类依据吗,面向对象编程与面向过程编程的区别-

文章插图
函数写好后 , 每当需要画花时 , 就调用一次 DrawFlower 函数 。
现在 , 我们要在窗口绘制一朵红花 , 一朵黄花 , 那就分别调用 DrawFlower 函数两次 , 一次画红花 , 一次画黄花 。那么 , 如果要画 1 亿朵五颜六色的花呢 , 那就调用 1 亿次函数 , 并分别传入五花八门的颜色和大小 。
面向对象和面向过程是编程语言的分类依据吗,面向对象编程与面向过程编程的区别-

文章插图
面向对象
而面向对象的方法 , 则聚焦于实施动作的对象 , 也就是这事儿是谁干的(即上面所说的物) 。
采用这种思想进行编程时 , 重点是抽象提炼出一个个物对象 , 再根据需要构建一个个类 。
  • 举例
同样的 , 我们还是要在窗口上绘制鲜花 。采用面向对象的方法 , 我们可以先构造一个 Flower 鲜花类 , 并为这个鲜花类添加两个属性:
  • 颜色
  • 大小
然后实现一个方法:
  • 绘制

面向对象和面向过程是编程语言的分类依据吗,面向对象编程与面向过程编程的区别-

文章插图
当我们要绘制鲜花时 , 需要首先实例化一个 Flower 鲜花对象(在创建鲜花对象时 , 我们为它指定颜色和大小) 。然后 , 当需要在窗口上绘制时 , 我们再调用这个鲜花对象的绘制方法 。
区别
  • 当我们使用面向过程的思想时 , 由于需要编写处理事情的函数 , 所以我们要明确解决问题的过程和要素 。
  • 当我们使用面向对象的思想时 , 由于首先需要构建类 , 所以我们要提取出来这个物类的共性 。例如 , 鲜花都有颜色 , 也都有一定的大小 。而且 , 我们构建该物类的最终目的是为了绘制鲜花 , 所以还必须创建一个绘制方法 。
总结
面向过程的主要优点是性能好 , 省资源(因为无需构建对象) , 缺点是不直观 , 与日常生活中的观念相差较大 , 不易于理解 , 也不利于复用 , 工程复杂时管理起来难度颇大 。
面向对象和面向过程是编程语言的分类依据吗,面向对象编程与面向过程编程的区别-

文章插图
面向对象的主要优点是易于理解和维护、扩展方便(因为面向对象有继承、多态等) , 复用率高 , 可根据需要隐藏内部实现 , 仅暴露必要的接口 , 缺点是总的来说比面向过程占用略大 , 性能略低 。
利用面向过程的语言的结构体和指针完全可以模拟面向对象的过程 。而面向对象的语言就是把这部分代码抽象化了 , 提供了代码的利用率 。我个人觉得面向过程能解决的简单单次问题就面向过程解决 。如果要反复用 , 参数会有变化的代码 , 那就模块化 , 用面向对象 。
【面向对象和面向过程是编程语言的分类依据吗,面向对象编程与面向过程编程的区别-】Tags:


    推荐阅读