繁体   English   中英

java中的顶级class是什么?

[英]What is a top level class in java?

  • java中的顶级class是什么?
  • java中的顶级class是什么定义?

我知道这是一个基本问题,但我找不到这个问题的明确和简单的答案。

它只是任何不是嵌套类的类。 如果你的文件是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM