假设我定义了一个类,该类具有与自己相同类型的变量作为成员。

public class Abc {
    private Abc p;
}

这实际上有效,令我惊讶的是。

为什么我不应该这样:创建一个Abc实例,它包含一个Abc类型的变量,其中包含一个Abc类型的变量,其中包含一个Abc类型的变量,这...

显然我错了,有人可以启发我吗?

最佳答案

您仅声明变量而不创建它。尝试在声明或构造函数中创建它,让我知道会发生什么:

public class Abc {
   private Abc p = new Abc(); // have fun!

   public static void main(String[] args) {
      new Abc();
   }
}

顺便说一句,如果您不是在类中创建它,而是在getter方法或构造函数参数中接受对它的引用,则您的代码将正常工作。这就是某些链接列表的工作方式。

10-02 02:52
查看更多