内部类的用法

Sum*_*hra 22 java inner-classes

我可以理解内部类是什么以及如何编写程序.我的问题是程序员在什么情况下真的需要内部课程?

Ree*_*ore 30

有时有一些功能最好表示为一个对象,但它只在另一个对象的上下文中有意义,它不一定需要暴露给外部世界,并且可以从访问父类数据中受益(以免违反封装).

我能想到的最好的例子是将一个Node类放在LinkedList中.节点仅对LinkedList有意义,因此它们只存在于一个节点中.LinkedList之外的任何人都不关心节点或应该有权访问它们.

  • 里斯的答案基本上是好的,但措辞只是有点误导.为了澄清,我将观察到任何树都有一个"节点"的概念,而不仅仅是一个链表.例如,队列和队列也有"节点"的概念.但是,每个树的"节点"的概念确实略有不同,所以是的,使用"节点"这个词作为每个树的内部类是很有意义的.这样,我们将它们分开,不要将它们相互混淆. (7认同)
  • 另外,Map.Entry (2认同)