在这里,你能学到一通百通的知识
它们适用于任何一门语言
程序员口中经常说面向对象编程、面向过程编程,他们口中的面向对象到底是什么意思呢?刚学习编程的你可能百度了半天也不知道这是什么意思。今天我们就来讲讲面向对象与面向过程。
我们先来解释一下两个词:编年史和纪传体。这是两种书写历史史书的方式。
编年史:按照历史事件发生的先后顺序,记录历史事件。
比较著名的编年史史书有《资治通鉴》,记载的是从公元前403年到公元959年发生的历史事件,资治通鉴是按照时间顺序写的。
纪传体:通过记叙历史人物的活动,反映历史事件的史书。
广为熟知的纪传体史书是《三国志》,它的写作方法是按照某个历史人物写的,比如先主传(刘备)、后主传(刘禅)、诸葛亮传等。
史书都是在讲一个故事,而我们写程序是为了解决一个问题,本质上没有什么区别。
面向过程编程,就是编年史的写法,面向对象编程,就是纪传体的写法,是以某个“人”为对象开始写的。
可能还不是很清楚两者的区别,没关系,我们再说一个例子。
我想写一个程序,自动将大象装进冰箱里,步骤大概是这个样子的:
把冰箱打开
把大象装进去
把冰箱门关上
好,哪些是过程呢?冰箱开门、冰箱装进、冰箱关门,都是过程,于是我写程序时,面向过程编程是这个样子的:
这样写,程序可以正常运行,但是你是不是觉得非常奇怪呢?是不是觉得很不符合你的大脑思考方式?好,我们换成面向对象编程试试。
先找出你要写的对象是谁。纪传体中,我想写曹操的历史,我的对象就是“曹操”这个人。同样的,冰箱装大象中,主要的对象是冰箱。于是我对冰箱这个对象说道:
是不是看起来简单了很多?再进一步简化变成可执行的代码:
这样一来,是不是容易读了许多,也更加直观了,这就是面向对象。
常见的面向过程语言有C语言、Fortran语言,常见的面向对象的语言有Python、C++、Java等。
现在,你明白什么是面向对象、什么是面向过程了吗?
领取专属 10元无门槛券
私享最新 技术干货