[英]What is a top level class in java?
我知道这是一个基本问题,但我找不到这个问题的明确和简单的答案。
它只是任何不是嵌套类的类。 如果你的文件是Foo.java,你的类是Foo,那么它就是顶级类。
// in Foo.java:
public class Foo { // top level class
public static class NestedBar { // nested class
}
}
我一直认为这是一个非正式术语,但事实证明它实际上是在JLS中定义的 :
顶级类是不是嵌套类的类。
嵌套类是任何类,其声明发生在另一个类或接口的主体内。
发布的定义是正确的,也许另一个定义可能是:顶级类是定义的类,其名称与文件“.java”的名称相同。但是,正如观察所示,对于案例显示,嵌套(不是顶级)“静态”类与顶层类的实例成员的交互方面具有相同的顶级类行为。
一个.java
文件可以包含多个class,最多其中一个可以有public
访问修饰符,其他的必须是default
访问修饰符。 它们也可以是final
的或abstract
的,但不能同时是两者。 因此,在.java
文件中定义的每个非嵌套独立 class 都是顶级 class 。
例如,在以下示例中,每个 class 都是顶级 class。
public class Animal {
private String name;
}
class Animal2 {}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.