我开发了自己的LinkedList的小实现,而没有使用Node嵌套类作为静态,它工作正常.... 但Java使用Node嵌套类作为static.I没有找到使Node嵌套类成为静态的强有力理由。
有人可以帮我解释一下吗?
答案 0 :(得分:1)
嵌套 类是其封闭类的成员。非静态嵌套类(内部类)可以访问封闭类的其他成员,即使它们是声明为private.Static嵌套类无权访问封闭类的其他成员。
static 嵌套类与其外部类(和其他类)的实例成员交互,就像任何其他顶级类一样。实际上,静态嵌套类在行为上是一个顶级类,它已嵌套在另一个顶级类中以方便打包。
LinkedList.Node不需要是顶级类,因为它只由LinkedList使用。因为它不需要访问LinkedList的成员,所以它是静态的 - 它是& #39;更清洁的方法。