首頁 >Java >java教程 >為什麼 Java 編譯的類別包含類似「Find$1.class」的名稱?

為什麼 Java 編譯的類別包含類似「Find$1.class」的名稱?

Patricia Arquette
Patricia Arquette原創
2024-10-26 00:45:27989瀏覽

Why do Java compiled classes contain names like

在Java 編譯類別中表示內部類別

在Java 中,將應用程式匯出到JAR 檔案時,某些類別可能包含類別名稱後面跟著美元符號和數字,例如Find$1.class。發生這種情況是因為 Java 與主類別分開編譯內部類別,包括匿名內部類別。

在另一個類別中定義的內部類別支援物件導向的程式設計概念,例如封裝和程式碼可重用性。它們是編譯器產生的,它們的類別檔案具有以下命名約定:

  • 命名內部類別: OuterClass$InnerClass.class
  • 匿名內部類別classes: OuterClass$1.class (其中1代表匿名類別)

例如下面的程式碼:

<code class="java">public class OuterClass {
    public class InnerClass {
        // ...
    }

    public static void main(String[] args) {
        OuterClass.InnerClass inner = new InnerClass();
    }
}</code>

編譯會產生下列class檔案:

  • OuterClass.class
  • OuterClass$InnerClass.class

類別檔案名稱中的美元符號用作分隔符號來區分外部和內部類別。表示內部類別屬於指定的外部類別。

以上是為什麼 Java 編譯的類別包含類似「Find$1.class」的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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