一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
一、定义
常听人们谈起面向对象,那面向对象到底如何理解呢?首先我们来看一下百度百科是如何定义的:
面向对象(Object Oriented)是软件开发方法,是一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象是相对于面向过程而言的,是指把相关的数据和方法组织成一个整体,从更高的层次进行系统建模,更贴近事物的自然运行模式。
面向过程关注的是执行的过程,而面向对象关注的是具有相关能力的对象。 面向对象到面向对象是程序员从执行者到指挥者的一个思想转变。
二、举个栗子🌰
Q1:把大象装进冰箱需要几步?
面向过程:需要3步-> 1、打开冰箱门;2、把大象塞进去;3、关闭冰箱门;
面向对象:需要2步-> 1、new一个能操作冰箱的员工(对象);2、指挥员工将大象塞进冰箱;
Q2:把1000只大象依次关进冰箱需要几步?
面向过程:需要3*1000步-> 1、打开冰箱门;2、把第1只大象塞进去;3、关闭冰箱门;4、打开冰箱门;5、把第2只大象塞进去;6、关闭冰箱门…………(此处略去N步)
面向对象:需要2步-> 1、招一个能操作冰箱的员工(对象);2、指挥员工将大象塞进冰箱;
由此可见,面向过程关注的是解决问题的步骤,而面向对象关注的是解决问题需要的对象。面向对象比面向过程更加灵活,有更好的可移植性和可扩展性。