19

什么时候可以嵌套类?我看到的最常见的优点是“共享范围”(跨类使用变量)。

与将嵌套类放在它自己的文件中并通过构造函数传递参数相比,这是否不太有吸引力/不是最佳实践?

4

4 回答 4

20

使用嵌套类有几个原因,其中包括:

  1. 这是一种对仅在一个地方使用的类进行逻辑分组的方法。

  2. 它增加了封装

  3. 嵌套类可以产生更易读和可维护的代码

  4. 子类到父类的连接更简单,因为它直观地说明了每个类的变量和方法。

于 2013-01-21T11:42:27.623 回答
1

除了已经提到的那些,另一个好处是:

  • 嵌套类还可以帮助您实现多重实现继承(参考:Thinking in Java,第 369 页 - “为什么使用内部类”部分?)。据我所知,在 Java 中没有其他方法可以实现它。
于 2014-03-01T14:08:17.400 回答
1

根据我的说法,我知道何时使用嵌套类,当我们看到一个对象(OBJ1)与第二个对象(OBJ2)紧密绑定时,如果没有第二个对象(OBJ2),我们就无法创建第一个对象(OBJ1)。例如,我们有一个员工对象,一个关联的对象是薪水,我们不应该独立创建薪水对象。因为没有我们要给薪水的员工。
如果我错了,请提供您的反馈。

第二种情况,当我们使用 map 或 map 时,我们可以使用嵌套类来删除 map 的 map 以使代码易于理解。

第三,当我们想向客户端发送数据时,我们可以将其发送到具有所有数据的单个对象中:)

当我们需要可以定义外部类的组件或者我们想要定义适配器时。

于 2016-05-16T05:08:48.620 回答
0

当我需要将一组相关字段传递给一个方法并在类中的几个方法调用中操作同一组数据时,我发现私有静态类很有用。类似于 LinkedList.Node 类,它不暴露于外部,而是用于将链接分组为一个单元。

于 2013-01-21T12:11:58.330 回答