当一个对象本身有一个相同类型的对象时,它叫什么?
示例:
public class Foo{
public Foo myFoo;
}
答案 0 :(得分:14)
我认为没有具体的名称。虽然这个概念用于许多不同的常见编程结构中。例如,在表示图形,树或链表时,节点通常会引用它们链接/连接的其他节点。
答案 1 :(得分:5)
这意味着Foo
是一个'递归数据结构'。这样的例子是树,图,链表等。没有很多重要的程序写入不使用至少一些递归结构,例如,在任何SQL服务器实现中,以类似的方式定义执行的查询计划是很常见的。作为一个小例子,WHERE
子句可能会被转换为FilterNode
,该Node
作用于从其他public interface Node { }
public class FilterNode implements Node {
public Node underlyingNode;
public Condition filterCondition;
}
收到的数据(如表扫描):
{{1}}
在许多情况下,整体结构形成一个有向无环图,这意味着它可以很容易地递归地安全地遍历它。但如果它有循环,那么你需要小心你不要进入无限递归(这是上面的另一个答案幽默地警告)。
答案 2 :(得分:4)
递归遏制......:)
答案 3 :(得分:1)
要添加Kibbee所说的,这是一种复合模式