一位同事(对Java非常陌生)今天停下来问一个看起来很简单的问题。不幸的是,我试图向他解释这件事,做了一件非常糟糕的工作。他有一本书,有一点点的代码是这样的:为什么你可以在其定义中实例化一个类?
class XCopy {
public static void main(String[] args) {
XCopy x = new XCopy(); // 1
x.doIt();
}
public void doIt() {
// Some code...
}
}
他是1号线。他想知道是什么原因的XCopy的新实例可以在类的XCopy的定义中创建混淆。他认为这会导致某种前向参考错误。毕竟,我们还没有完成XCopy类的声明,所以我们如何创建它?
我当然知道这是有效的代码,但是当我试图向他解释时,我发现自己在答案上磕磕绊绊,恐怕我让他比开始时更困惑。我想听听其他解释为什么这会起作用。
有什么想法?为什么你可以在类的定义中实例化一个类的实例?
什么是'一流实验'? – Andru 2017-03-06 17:29:03
@Andru就在你正在试验语言的时候,你不想创建一个完整的程序,所以你只需要把所有东西放到一个类中,包括主要方法 – Eames 2017-04-17 13:51:09
@Mathew我只是想重新检查我的知识,即一个类首先在内存中加载,然后调用static main,对吧? – light 2017-07-31 14:48:31