什么是面向对象编程?
1. 抽象化与日常生活中的例子
日常生活中充满了各种各样的物体。就在我面前的有椅子、桌子、电脑,还有一只红色的星巴克杯子。我可以轻松地根据它们的属性将这些物体分门别类。例如,这只杯子是一个容器,它还是一个保温体,所以我可以用它来装热的或冷的东西,它还有质量,所以我可以用它压纸或者扔向狗。面向对象的编程就是将这种世界观应用到编程中。为了说明我的意思,请让我从一个故事开始讲起。
抽象与微波炉
有时候,当我和儿子一起看足球比赛时,我会快速准备一盘墨西哥玉米片。没有什么特别的,我就是把一些薯片放在盘子里,加上一些炒豆、奶酪和一些墨西哥辣椒,然后整个放进微波炉里加热五分钟。使用烤箱时,我打开门,把玉米片放进去,按前面的几个按钮,然后按下开始键。几分钟后,铃声响起告诉我它们已经做好了。如果我做错了什么,烤箱会发出嘟嘟声并拒绝启动。有时它会在小显示屏上显示一个错误信息。
这听起来并不深奥,实际上它确实不是——直到你考虑到我使用微波炉所做的一切事情:
- 我只限于微波炉的前面板。我不看内部的机箱。我不查看告诉处理器单元如何操作的代码列表。我不研究贴在机箱内壁上的布线图。
- 我没有重写任何代码或改变微波炉内部的任何东西来让它工作。我用来做玉米片的微波炉,就是我之前用来加热热狗的同一个微波炉(我家除了健康食品什么都没有)。而它也将是我明天用来加热我的Malt-O-Meal的同一个微波炉(前提是它没坏)。
- 我在使用微波炉时,并不会考虑它内部可能发生的事情。即使我一生都在设计微波炉,我在大赛前做芝士玉米片时,也不太可能去思考它是如何工作的。
这些并不
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



