java - 一个类怎么会有自己类型的成员,这不是无限递归吗?

标签 java oop class

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

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 方法或构造函数参数中接受对它的引用,您的代码就可以正常工作。这就是一些链表的工作原理。

关于java - 一个类怎么会有自己类型的成员,这不是无限递归吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9780742/

相关文章:

python - dir(self) 和 self.__dict__ 有什么区别

php - 您将如何设置一个小型 MVC 结构?

java - 如何通过依赖注入(inject)和垃圾收集来防止循环引用?

C# 两个类和两个表链接

java - 替换单词中的重复字母,但有异常(exception)

c++ - 为什么我的 vector 没有随着我对其元素所做的更改而更新?

java - 你如何制作一个可变的类级别?

java - 从秤串口获取数据,无需 <CR>

java - 为柑橘环境变量分配特定值后是否可以更改它们

java - 将 Guava.Preconditions 与串联字符串一起使用时是否会对性能产生影响?