java中一般方法里的this是代表调用本方法的对象,但是构造方法里的this代表的是什么呢。
this代表你正在构造的对象。
public class Test {输出的两个字符串相同(后面的数字是对象地址),说明this和obj是同一个对象。
这里this就是正在构建的CommunicationDemo的对象,作为参数传给Thread的构造函数。
内幕是:java对象的建立其实是在构造函数开始执行之前,就是说构造函数执行的时候,被构造的对象其实已经存在了,所以构造函数中可以用this引用当前被构造的对象进行处理(比如 this.name=“Jack”)。
追问哦,收获不小,其实构造方法不是在创建对象,而是在不停的复制对象到不同的地址中去。另外调用构造方法的其实还是这个this。你看我理解的对不。
追答也不能说是复制,产生新对象并且放在内存里是虚拟机的工作,构造方法的功能其实是初始化这个新对象。
“调用构造方法的其实还是这个this”我觉得这个说法好。
这个如果想深究,可以了解一下C语言,看一下【 java编程思想】。 平时的使用可不用太计较。
下面是【 java编程思想】里关于一个类的初始化顺序的解释。
在这里有必要总结一下对象的创建过程。请考虑一个名为Dog 的类:
看一看出, 到(6)的时候, 这个对象其实已经在内存中存在了。所以this已经有引用了。
对象的创建,就是在内存中申请一段地址空间。和C,C++是相同的。而java中这部分工作,是
JVM完成的。
关键是构造方法夹在是是没有对象存在的。
追答没明白你 表达的意思,构造方法不是声明一个类的对象时调用的吗?