我正在学习如何使用this()
来调用重载构造函数,并遇到了以下限制:
在调用
this()
时,您不能使用构造函数类的任何实例变量
例如:
class Test{
int x;
public Test() {
this(x); //Does not compile
}
public Test(int y) {}
void method1() {
method2(x); //OK
}
void method2(int y) {}
}
我知道不需要将实例字段传递给构造函数,因为它默认是可见的。但是,为什么实例方法没有应用相同的限制呢?
x
。 - lucidbrotmethod2
而不是从方法中调用。 - Maarten Bodewes