什么是面向对象
今天我在想一件事情,什么是面向对象,我觉得有很多刚了解网络编程的人都会有这个困惑。我们先来了解一下OO(Object Oriented),他有很多的衍生,OOP,Object Oriented Programming(面向对象的编程),还有OOD(面向对象的设计),OOA(面向对象的分析)。
在很早以前,人们只是简单的做一些算法,就比如是1+1=2,但是经过时代的发展,简单的算法不能满足人们的需求了,就比如是对一个群体的分析,把他整体看成是一个类,然后再对这个类进行分析。
简单来说,什么是面向对象,什么是面向过程呢,
就是说你今天突然想去吃个宫保鸡丁这个菜,你有两个选择,
1.你可以去菜市场,买做宫保鸡丁的一些食材,胡萝卜,鸡丁,绿豆等等,然后你再回来看着教程自己一步一步的做,你就可以吃到宫爆鸡丁了。
2.直接去你楼下,跟饭馆的老板说,来一盘宫保鸡丁,你也能吃到。
第一个就是面向过程,一步一步的做,中间的过程你要知道怎么弄。第二个就是面向对象,你不需要知道宫保鸡丁需要哪些食材,需要怎么做。
面向过程中你早上想吃宫保鸡丁了,但是买完菜回来发现你想吃土豆片了,你就得去重新买食材,重新做,也许后面还有其他需求,一个环节错了你就做不了。
但是面向对象就不一样了,你直接跟老板说你想吃土豆片了,直接就能给你做,这就很方便。
面向对象降低了耦合性,各个模块之间影响不大,方便维护,简单来说就是把事物模块化了,把他变成一个类,进行封装。面向过程就不行,你得一步一步的来,也许中间有个步骤出错了,你下面的就做不了,耦合性较强。
说到底,面向对象的底层还是用面向过程做的,把事物封装成一个类给面向过程用。