面向对象0--我所理解的对象

为什么需要面向对象?这到底有什么优点?

这就是我所理解的程序语言的一个重要优点。相比于普通的计算器,难道计算机就只能作为一个功能强大的函数处理器吗?

面向对象,就是通过数据的抽象化,在程序中产生一个个对象和一个个实例。而这些对象和实例,更贴近生活,也更容易理解。

比如,我们现在有三个乐器,想存储乐器的相关信息,比如价格,和相对应能弹奏的曲子。如图:

面向对象0--我所理解的对象

如果不用对象的思路来考虑,也没有问题。比如创立一个HashMap或者Array来存储相关信息。

面向对象的话,很直观,我们可以每一个乐器都创建一个类,这样,通过构造器来生成具体的实例。

面向对象0--我所理解的对象

可以看到,创造对象或者说一个类,是一个非常*的事情,可以根据程序的实际需要来进行编写所需要的类。

通过类,可以对数据进行封装,继承,多态等相关操作,使得代码复用更加清晰,使得代码的可读性大大提高。

比如下面这一段代码:

面向对象0--我所理解的对象

我们可以清楚的看到通过构造器产生了Guitar类的一个实例。注意:Guitar guitar1只是一个“指针”,而真正产生实例的是: new Guitar()这个构造方法。

在这里play()是实例方法,不能脱离具体的实例来产生。比如一段由Guitar产生的音乐,必须要有一个具体的Guitar来产生,否则无法完成这个动作。

不管是开发者还是读者,都可以很直观的知道guitar1.play()所表达的含义,而不需要了解更多细节。

而guitar1.play()在这里,能够清晰地展现play()与guitar1之间的关系。这个关系更能反应现实,反过来,面向对象更容易把现实中事物之间的状态,行为和关系,直观地表达在程序之中。