为什么可以在类定义内部实例化类?
- 论坛
- 为什么可以在类定义内部实例化类?
17 浏览
为什么可以在类定义内部实例化类?
一位(对Java非常陌生的)同事今天过来问了一个看似非常简单的问题。不幸的是,我在试图解释这个问题时做得非常糟糕。他手上有一本书,书中有一段代码看起来像这样:
class XCopy { public static void main(String[] args) { XCopy x = new XCopy(); // 1 x.doIt(); } public void doIt() { // Some code... } }
他对第一行感到困惑。他想知道的是为什么在类XCopy的定义中可以创建XCopy的一个新实例。他认为这样会导致某种前向引用错误。毕竟,我们还没有完成声明类XCopy的过程,那么我们怎么能创建一个实例呢?
我当然知道这是有效的代码,但是当我试图解释给他听时,我发现自己回答得支支吾吾,恐怕比他刚开始时更加困惑了。我想听听其他人对为什么这样可以的解释。
有什么想法吗?为什么可以在类的定义中实例化一个类的实例呢?