java中一般方法里的this是代表调用本方法的对象,但是构造方法里的this代表的是什么呢。

java中一般方法里的this是代表调用本方法的对象,但是构造方法里的this代表的是什么呢。... java中一般方法里的this是代表调用本方法的对象,但是构造方法里的this代表的是什么呢。 展开
 我来答
百度网友33dcad5a0
2013-11-01 · TA获得超过164个赞
知道答主
回答量:69
采纳率:100%
帮助的人:81.3万
展开全部

this代表你正在构造的对象。

public class Test {
public Test() {
System.out.println(this.toString());
}
public static void main(String[] args) {
Test obj = new Test();
System.out.println(obj.toString());
}
}

输出的两个字符串相同(后面的数字是对象地址),说明this和obj是同一个对象。


这里this就是正在构建的CommunicationDemo的对象,作为参数传给Thread的构造函数。


内幕是:java对象的建立其实是在构造函数开始执行之前,就是说构造函数执行的时候,被构造的对象其实已经存在了,所以构造函数中可以用this引用当前被构造的对象进行处理(比如 this.name=“Jack”)。

追问
哦,收获不小,其实构造方法不是在创建对象,而是在不停的复制对象到不同的地址中去。另外调用构造方法的其实还是这个this。你看我理解的对不。
追答
也不能说是复制,产生新对象并且放在内存里是虚拟机的工作,构造方法的功能其实是初始化这个新对象。
“调用构造方法的其实还是这个this”我觉得这个说法好。
六欧oooooo
2013-11-01 · TA获得超过515个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:89.4万
展开全部
你弄错了this代表的是本类的实例对象,不是什么调用本类的方法的对象.当你用new创建一个对象的时候,对象就已经在内存了.(具体的你的血jvm和反射).构造方法只是为了给对象里的属性赋值.在类里任何地方出现的this都是指的本类的实例对象,构造方法里的也一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xupeiying
2013-11-01 · TA获得超过468个赞
知道小有建树答主
回答量:553
采纳率:0%
帮助的人:568万
展开全部

这个如果想深究,可以了解一下C语言,看一下【 java编程思想】。 平时的使用可不用太计较。


下面是【 java编程思想】里关于一个类的初始化顺序的解释。

在这里有必要总结一下对象的创建过程。请考虑一个名为Dog 的类:
(1) 类型为Dog 的一个对象首次创建时,或者Dog 类的static 方法/static 字段首次访问时,Java 解释器
必须找到Dog.class(在事先设好的类路径里搜索)。
(2) 找到Dog.class 后(它会创建一个Class 对象,这将在后面学到),它的所有static 初始化模块都会运
行。因此,static 初始化仅发生一次——在Class 对象首次载入的时候。
(3) 创建一个new Dog()时,Dog 对象的构建进程首先会在内存堆(Heap)里为一个Dog 对象分配足够多的存
储空间。
(4) 这种存储空间会清为零,将Dog 中的所有基本类型设为它们的默认值(零用于数字,以及boolean 和
char 的等价设定)。
(5) 进行字段定义时发生的所有初始化都会执行。
(6) 执行构建器。

 

看一看出, 到(6)的时候, 这个对象其实已经在内存中存在了。所以this已经有引用了。


对象的创建,就是在内存中申请一段地址空间。和C,C++是相同的。而java中这部分工作,是


JVM完成的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hero_wcf
2013-11-01 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:91.6万
展开全部
构造方法中的this应该代表的是本类,比如这个类有一个属性age,构造方法中可以用this.age=age
来为age赋值。个人理解,说的不好
更多追问追答
追问
如果这个age不是静态的呢。
追答
什么意思?说具体点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
段寄存器
2013-11-01
知道答主
回答量:39
采纳率:0%
帮助的人:10.5万
展开全部
个人理解是代表你声明的该类的对象
追问
关键是构造方法夹在是是没有对象存在的。
追答
没明白你 表达的意思,构造方法不是声明一个类的对象时调用的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式