假设我们有一个这样的类:

class XCopy {
    public static void main(String[] args) {
        int orig = 42;
        XCopy x = new XCopy();
        int y = x.go(orig);
        System.out.println(orig + " " + " y);
    }
}

我知道 go 方法丢失了,但没关系。这应该工作吗?看起来是这样,但我无法想象类中的自我参照是如何工作的;它有任何副作用吗?为什么这样做?这不是某种无限递归循环吗?

无论如何,我只是无法弄清楚这是如何工作的;提前致谢。

最佳答案

通过调用

XCopy x = new XCopy();

您实际上是在调用 XCopy 的空构造函数,而不是再次调用 main 方法。

所以,调用看起来像:
JVM calls XCopy.main();
main method creates new instance of XCopy by calling XCopy's empty constructor
XCopy constructor ends
main method ends -> program ends

关于java - 引用自身的类如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6140971/

10-09 17:22