我知道这是一个基本问题,但我找不到这个问题的清晰简单的答案。
答案 0 :(得分:24)
它只是一个不是嵌套类的类。如果您的文件是Foo.java,而您的课程是Foo,那么它就是顶级课程。
// in Foo.java:
public class Foo { // top level class
public static class NestedBar { // nested class
}
}
我一直认为这是一个非正式的术语,但事实证明它实际上是defined in the JLS:
顶级类是不是嵌套类的类。
嵌套类是任何类,其声明发生在另一个类或接口的主体内。
答案 1 :(得分:1)
发布的定义是正确的,也许另一个定义可能是:顶级类是定义的类,其名称与文件“.java”的名称相同。但是,就像观察一样,对于案例显示,嵌套(不是顶级)“静态”类与顶级类的实例成员的交互方面具有相同的顶级类行为。