java – 如何一个类有自己的类型的成员,不是这个无限递归?

说我定义一个类,它有一个与它自己相同类型的变量作为成员。

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方法或构造函数参数中的引用,你的代码将正常工作。这是一些链表的工作原理。

http://stackoverflow.com/questions/9780742/how-can-a-class-have-a-member-of-its-own-type-isnt-this-infinite-recursion

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 如何一个类有自己的类型的成员,不是这个无限递归?