[英]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.