类可以将自身对象作为属性吗?

Cod*_*ein 0 java attributes class

类可以将自身对象作为属性吗?

这不应该导致无限循环和爆炸吗?

public class MyClass() {
     private MyClass classy;
}
Run Code Online (Sandbox Code Playgroud)

MaV*_*SCy 7

原样

public class MyClass() {
      private MyClass classy;
}
Run Code Online (Sandbox Code Playgroud)

你可以拥有!

尽管如此

public class MyClass() {
      private MyClass classy = new MyClass();
}
Run Code Online (Sandbox Code Playgroud)

你会有问题(java.lang.StackOverflowError)

这是因为在第一种情况下,您只有一个类型 的局部变量MyClass.现在在第二种情况下,当你尝试实例化它时,就会发生一种无限循环并且JVM抱怨

  • @Imray - 围绕节点构建任意数量的数据结构,这些节点具有对相同类型的其他节点的引用; 例如,您的基本链接列表.*构造*对象时无法实例化它或无限地递归; 你不仅能够传递参考文献或者以后创建参考文献. (2认同)