2

我开发了自己的 LinkedList 小实现,没有使用 Node 嵌套类作为静态,它工作正常......但是 Java 使用 Node 嵌套类作为静态。我没有找到将 Node 嵌套类作为静态的充分理由。

谁能帮我解释一下?

4

1 回答 1

1

嵌套类是其封闭类的成员。非静态嵌套类(内部类)可以访问封闭类的其他成员,即使它们被声明为私有。静态嵌套类无法访问封闭类的其他成员班级。

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

LinkedList.Node 不需要成为顶级类,因为它仅由 LinkedList 使用。而且由于它不需要访问 LinkedList 的成员,因此它是静态的是有意义的——这是一种更简洁的方法。

于 2015-03-25T05:26:18.357 回答