首頁 >Java >java教程 >為什麼 Java 編譯類別有美元符號?

為什麼 Java 編譯類別有美元符號?

Patricia Arquette
Patricia Arquette原創
2024-10-26 18:54:291017瀏覽

Why Do Java Compiled Classes Have Dollar Signs?

有美元符號的 Java 編譯類別

Java 程式設計師經常在編譯的類別檔案中遇到特殊的命名約定。一些類別的類別名稱呈現出奇怪的模式,後面跟著一個美元符號和一個數字。例如,您可能會看到以下檔案:

  • Find$1.class
  • Find$2.class
  • Find$3.class
  • Find 。 class

深入探究原因

與普遍看法相反,班級的規模不會觸發此行為。答案就在內部類別。當類別包含內部類別時,編譯器會為這些內部類別產生單獨的類別檔案。檔案名稱遵循以下模式:

OuterClass.class
OuterClass$InnerClass.class

匿名內部類別

匿名內部類別在沒有自訂名稱的情況下定義,並指派數字。這解釋了“Find$1.class”和類似的檔案名稱。

範例

考慮以下程式碼片段:

public class OuterClass {
    class InnerClass {
    }

    Serializable anonymous = new Serializable() {
    };
}

編譯器會產生下列類別檔案:

  • 編譯器會產生下列類別檔案:
  • OuterClass.class
OuterClass$InnerClass.class

OuterClass$1.class

考慮匿名類別嗎? 匿名內部類別的使用一直存在爭議。有些人認為這是一種代碼味道,而另一些人則認為它在某些情況下是否合適。最終,使用它們的決定取決於特定的設計要求。

以上是為什麼 Java 編譯類別有美元符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn