为什么java中的LinkedList实现将Node嵌套类作为静态?

时间:2015-03-25 05:08:12

标签: generics linked-list static-class

我开发了自己的LinkedList的小实现,而没有使用Node嵌套类作为静态,它工作正常.... 但Java使用Node嵌套类作为static.I没有找到使Node嵌套类成为静态的强有力理由。

有人可以帮我解释一下吗?

1 个答案:

答案 0 :(得分:1)

嵌套 类是其封闭类的成员。非静态嵌套类(内部类)可以访问封闭类的其他成员,即使它们是声明为private.Static嵌套类无权访问封闭类的其他成员。

static 嵌套类与其外部类(和其他类)的实例成员交互,就像任何其他顶级类一样。实际上,静态嵌套类在行为上是一个顶级类,它已嵌套在另一个顶级类中以方便打包。

LinkedList.Node不需要是顶级类,因为它只由LinkedList使用。因为它不需要访问LinkedList的成员,所以它是静态的 - 它是& #39;更清洁的方法。