由于构造器的概念相当的抽象,所以当时我在理解构造器的时候花费了很久的时间。
因为很多时候用比喻来解释代码对于理解代码更加方便,所以我尽量用浅显的比喻来解释。以下是我对构造器的一些个人理解。
以下图的代码为例。
在这串代码中,Construct为我们要的对象,可以将它看成一个工程。而构造器相当于一个储存各类工具的地方。外部定义的常量为我们
需要的工具。代码中,new出的s1与s2可以看成是产生的两个不同效果的工程或看成为两个不同的员工。x-someone.x是用特定的工具完
成这个工程所用的方法。
现在,我们最后需要的工程为s2.distance(s1)。首先我们new出的是s2对象,也就是在s2环境下对工程的操作。s2中的常量传到
构造器的参数中,使得成为全局变量。因此s2中的x的值就赋给了x-someone.x中的前面一个x。而distance方法的变量为new出的Construct
对象,s2.distance(s1)就是在s2环境中运行distance方法,方法的变量为new出的s1对象,这时s1将它自己的值又重新传到构造器成为一
个新的对象,将s1中的x的值赋给了someone.x。因此,最后工程的结果为s2(x)-someone.s1(x)。
构造器和方法的不同除了修饰符,返回值和命名的不同,还有功能和作用的不同。
构造器用来创建对象,同时可以给属性做初始化,而方法的作用仅仅是功能函数,为了执行java代码。