【发布时间】:2013-10-11 10:01:53
【问题描述】:
我从Oracle Website 看到了这个关于 Java 的示例代码?
public class Parent {
class InnerClass {
void methodInFirstLevel(int x) {
// some code
}
}
public static void main(String... args) {
Parent parent = new Parent();
Parent.InnerClass inner = parent.new InnerClass();
}
}
- 构造
parent.new InnerClass()的目的是什么? - 什么样的类适合这种结构?
标题可能具有误导性:我了解这个结构的一切。
我只是不明白何时何地使用此 Java 功能。
我发现另一种语法可以做到这一点:Java: Non-static nested classes and instance.super()
有很多关于这个结构的参考资料,但没有关于应用程序的。
[参考文献]
【问题讨论】:
-
一个很好的用途是一个名为
Builder的静态内部类,用于 Builder 设计模式... -
官方 Java 教程涵盖了它们:docs.oracle.com/javase/tutorial/java/javaOO/nested.html
-
不特定于 Java 8,可能从第一个 Java 版本开始就存在
-
@MarkRotteveel:哦,确实如此。页面中有一个“为什么使用嵌套类”部分。不确定答案如何解释本教程的几页无法解释的内容。
-
@JBNizet 似乎在 1.1 版中处于中间位置 :) en.wikipedia.org/wiki/Inner_class#Programming_languages
标签: java inner-classes nested-class