《Android从菜鸟到高手》——001从面向对象开始谈起

来源:互联网 发布:ubuntu 查看系统语言 编辑:程序博客网 时间:2024/06/10 03:11

背景

“面向对象”,每一个程序员,在入行的时候,都会接触到这个概念。大学时期的老师,都会告诉我们:用C语言编程,就是面向过程,用C++/Java编程,就是面向对象。真的是这样的吗?

本人的观点是:面向对象和面向过程,只是思考问题的两种方式。Java是面向对象的语言没错,但我们只能说:Java支持面向对象编程。一个脑子里只有面向过程的程序员照样可以用Java写出面向过程的代码。

纯理论看的太累让我们举个栗子:

这里写图片描述

如果我们要造一辆汽车。(请忽略这辆车身上的屌丝气质)
这里写图片描述

面向过程的方式应该是这样的,依次定义和实现以下函数:

  1. 启动汽车函数。
  2. 汽车起步函数。
  3. 汽车加速函数。
  4. 汽车减速函数。
  5. 汽车鸣笛函数。
  6. 汽车转弯函数。
  7. 汽车熄火函数。
  8. 锁车函数。
  9. 面向过程的开车,那就去调用对应的函数即可。

面向对象的方式应该是这样的:

  1. 定义发动机对象。
  2. 定义车轮对象。
  3. 定义车门对象。
  4. 定义传动箱对象。
  5. 定义变速箱对象。
  6. 等其它部件…
  7. 定义汽车对象,汽车对象会涵盖以上所有部件的对象。同时,还会有启动、起步、加速、减速等方法。
  8. 面向对象的开车,就new出一个车,然后调用车的方法。

看完这例子,相信大家应该能看出来,面向过程和面向对象还是有很大差别的。相对于面向过程,面向对象有两个特点:

  1. 面向对象编程思想更符合现实世界的逻辑。
  2. 面向对象编程的更适合用于编写中/大型软件,它适合多人合作编程,同时也可以灵活扩展。(因为发动机对象、车轮对象,都可以分给不同的程序员去实现,并且今后还可以复用。)

本篇文章思维导图:

面向对象

0 0
原创粉丝点击