1.面向对象和面向过程的区别是?
-
面向过程:
-
把问题,拆解性小的流程。
-
优点是:把复杂问题,流程化后简单了。
- 缺点是:扩展性差。
-
-
面向对象:
-
优点是:扩展性强。
- 缺点是:将编程的复杂性变大。
-
2.面向对象编程,是什么?
-
核心是对象二字,那什么是对象?
-
对象是一个概念
- 是一个国外翻译过来的概念。
-
对象是一个容器
- 函数是一个容器,盛放功能的。
- 对象也是一种容器,盛放数据+功能的。
-
基于面向对象的编程思想,就是创造一个个容器,来梳理代码的。
- 同样,面向过程也是创造一个个函数,来梳理代码的。
3.面向对象可以比喻房子里的什么东西,来帮助理解?
-
面向过程(功能)
-
散落的木板 ==》 书架
- 冰箱零件 ==》 冰箱
-
-
面向对象(数据+功能)
- 书(数据)
- 书在地上,在厕所,在厨房 ==》书在书架上。【数据+功能】
- 大蒜(数据)
- 大蒜在地上,在卧室... ==》大蒜在冰箱里。【数据+功能】
- 韭菜(数据)
- 韭菜在地上,在客厅... ==》 韭菜在冰箱里。【数据+功能】
- 书(数据)
-
面向对象是一种归类。
- 原则是:把相关的放在一起。
- 比如,厨房这个容器。(对象)
- 盛放了数据【葱,姜,蒜,鸡蛋,韭菜,调味料】
- 盛放了功能【冰箱,电饭锅,微波炉】
- 比如,厨房这个容器。(对象)
- 原则是:把相关的放在一起。
-
冰箱这个容器到底是函数还是对象?
-
冰箱没有放任何数据的话
- 是一个函数。
- 它就是由一堆零件组成的。
-
冰箱盛放了数据的话
- 是一个对象。
- 它由零件组成的功能+盛放的数据【葱,姜,蒜,韭菜,黄瓜...】
-
-
如何区分,容器是函数还是对象?
-
关键在于是否承载了数据。
-
4.谈谈我理解的面向对象。
- 优点:扩展性好。
- 缺点,需要进一步整理,复杂度高了。
- 比如,我收拾房间。我要把书放在书架上。
- 我首先要买个书架子,快递发给我一套木板,一堆螺丝钉,一把螺丝刀。
- 我把这些东西组装起来,形成一个书架【功能】,功能性就是实现了。也就是函数实现了。
- 现在又要把,书放到书架上,我这个书架有5层,我书有人文的,自然的,历史的,IT的。
- 还有书看过的,没看过的,那些我判断是使用频率高的书籍,哪些是频率低的,把频率高的放在中间3层,4层,频率低的放在1层2层5层。
- 我根据这些原则,把这个书【数据】放在一起。这个过程,就完成了对象的概念。同样,我相比起函数,付出了更多的时间和精力,复杂性相比之前的函数,确实提高。同样的好处是,我更方便使用这个书架,每个书的位置,都有了一定的原则(索引位置)。找起来更方便了。
5.最能体现面向对象的扩展性强的是?
-
封装。
-
《封装》最能体现,但像 《继承》,反而与扩展性强是相违背的。
-
参考资料:
标签:容器,冰箱,面向对象,--,盛放,扩展性,Python,数据 From: https://www.cnblogs.com/liqi175/p/17062446.html