Java-将实例变量传递给this()方法

问题描述 投票:1回答:1

我正在学习使用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) {}
}

我知道不需要将实例字段传递给构造函数,因为默认情况下它是可见的。但是,为什么相同的限制不适用于实例方法?

java
1个回答
0
投票
Java中还有另一个要求:必须在任何构造函数中首先执行构造函数调用。那意味着任何

after都意味着该类-以及实例字段-已初始化。因此,在构造函数之后调用方法是可以的,因为已知它们具有一致的值。

© www.soinside.com 2019 - 2024. All rights reserved.