我正在学习使用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) {}
}
我知道不需要将实例字段传递给构造函数,因为默认情况下它是可见的。但是,为什么相同的限制不适用于实例方法?
after都意味着该类-以及实例字段-已初始化。因此,在构造函数之后调用方法是可以的,因为已知它们具有一致的值。