JAVA中这个(var)和this.var有什么区别。?
public class Clock {
private long time = 0;
private Clock(long time) {
this.time = time;
}
public Clock(long time, long timeOffset) {
this(time);
this.time += timeOffset;
}
public static Clock newClock() {
return new Clock(System.currentTimeMillis());
}
}
答案 0 :(得分:4)
鉴于课程
public class Clock
{
private long time = 0;
public Clock(long time)
{
...
}
}
你使用
this(x)
使用参数x
调用构造函数。这称为constructor chaining,您只能从构造函数中调用this()
,它必须是第一个语句。构造函数可能不会通过构造函数链接自称。this.time = x
将名为time
的成员设置为x
的值。 this
表示time
的范围,例如如果您使用的是局部变量time
的方法,则使用time
将从方法获取最近的范围,即本地方法。如果您需要实例范围,请使用this.time
。如需进一步阅读,请参阅Java Language Specs - 8.8.7 Constructor Body和Java Language Specs - 6.3 Scope of a declaration以及以下部分。
答案 1 :(得分:2)
第一个(this(var)
)使用var
作为参数调用构造函数,而第二个仅引用对象中的var
属性。