面向对象思想得由来是,起初我们的需求单一或者特别简单时,可以一步一步的去进行操作,并且效率也不是很低,可是随着需求进一步的提高,所需要实现的功能也就越多,我们发现需要面对的每一个步骤很麻烦,所以就开始探索,可不可以将这些步骤和功能再进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。这样结构就清晰明了了,用得时候直接找到对应的类就行了。
面向对象其实就是基于面向过程的编程思想,面向过程是我们经过分析后,逐步将分析用代码实现,每一步都需要我们自己去实现。
举个例子,就比如我们日常生活中经常用到的热水器,每次洗澡就可以直接使用热水,但是如果没有热水器,我们需要去用壶接水,然后将其倒入锅中,还需要寻找加热方式,比如烧柴或者煤气灶,然后烧开之后将开水和凉水混合我们才可以洗个舒服的热水澡,但是,后来有人将这一系列操作封装成热水器,我们只需要直接打开开关,无需思考任何流程就可以直接洗澡了,无疑这种封装将复杂的事情简单化,我们从执行者变成了指挥者。这其中,关于如何将水烧开一系列的操作都是面向过程的,直接控制热水器是面向对象的思想。
面向对象的最高境界就是万物皆对象。在面向对象的开发中,我们就是不断地创建对象使用对象指挥对象做事。面向对象有三个基本特征:封装,继承和多态。
那么类与对象又是什么关系呢?对于现实世界中的事物,往往会拥有属性和行为两种概念,比如手机,颜色、型号、品牌都是它的属性,用它打电话,发短信,聊天等都是手机的行为。所以一个类应该也包含了这两种东西。我们称为成员变量和成员方法。类是一组相关属性和行为的集合,对象是该类事物的具体实现。
下面是类和对象关系图:
作者的公众号,有兴趣的可以帮忙关注一下