Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我开发了自己的 LinkedList 小实现,没有使用 Node 嵌套类作为静态,它工作正常......但是 Java 使用 Node 嵌套类作为静态。我没有找到将 Node 嵌套类作为静态的充分理由。
谁能帮我解释一下?
嵌套类是其封闭类的成员。非静态嵌套类(内部类)可以访问封闭类的其他成员,即使它们被声明为私有。静态嵌套类无法访问封闭类的其他成员班级。
静态嵌套类与其外部类(和其他类)的实例成员交互,就像任何其他顶级类一样。实际上,静态嵌套类在行为上是一个顶级类,为了方便打包,它已经嵌套在另一个顶级类中。
LinkedList.Node 不需要成为顶级类,因为它仅由 LinkedList 使用。而且由于它不需要访问 LinkedList 的成员,因此它是静态的是有意义的——这是一种更简洁的方法。