面向对象思想

3.1.1 概述

面向对象(Object Oriented)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象是相对于面向过程来讲的,指的是把 相关的数据和方法组织为一个整体 来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

3.1.2 举一个栗子

我们通过生活中的一个脑筋急转弯, 来理解这个概念。
问:
把大象装进冰箱 , 需要分几步?
回答:
面向过程回答:3步:1把冰箱门打开, 2把大象装进去 , 3把冰箱门关闭
面向对象回答:2步:1招一个能操作冰箱的工人(对象),2指挥工人装大象
思考:
如果问题改成: 把100只大象依次关进冰箱,共分为几步?
面向过程的回答: 此处需要省略N字。。。
面向对象的回答还是2步:1招一个能操作冰箱的工人(对象) , 2指挥工人把大象依次装进去。

  1. 结论:<br /> 从上述的栗子中, 我们发现面向过程很死板 ,是很难适应变化的 而面向对象更灵活,可复用性更高。

3.1.3 栗子好吃,我们再举一个

我们再描述一个生活的场景:
场景:
当我们独自生活时, 我们经常纠结一日三餐怎么吃
面向过程:
每天亲力亲为: 买菜 - 做饭 - 吃饭 - 洗碗 的过程。
面向对象:
招聘一个保姆,每天等吃即可。
场景升级:
假设你是一个富豪, 拥有一座占地3000亩地的庄园 ,不再是只关注吃饭问题 , 还有花草树木 修剪,泳池维护清洗,卫生打扫,洗衣做饭。。。。。。
面向过程:
此处省略看着就累的N字。
面向对象:
招聘一个管家, 然后让管家招聘 园丁、泳池维护工、保姆等等。
结论:
从上述的栗子中, 我们发现面向过程,我们需要关注很繁琐的过程 。
而面向对象不用关注具体的细节,更关注的是统筹架构的问题。
其实我们进行大型应用开发时, 就如上述的例子一样, 如果我们写程序只关注过程的话, 代码量达到一定层次以后, 就很难再编写下去了。
如果采用面向对象的思想来设计编写程序 ,就会方便很多。

3.1.4 三大思想

面向对象思想从概念上讲分为以下三种:OOA、OOD、OOP
OOA:面向对象分析(Object Oriented Analysis)
OOD:面向对象设计(Object Oriented Design)
OOP:面向对象程序(Object Oriented Programming)

3.1.5 三大特征

封装性:所有的内容对外部不可见
继承性:将其他的功能继承下来继续发展
多态性:方法的重载本身就是一个多态性的体现