Rumah  >  Artikel  >  Java  >  Mengapakah kelas yang disusun Java mengandungi nama seperti \"Find$1.class\"?

Mengapakah kelas yang disusun Java mengandungi nama seperti \"Find$1.class\"?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 00:45:27899semak imbas

Why do Java compiled classes contain names like

Menandakan Kelas Dalaman dalam Kelas Tersusun Java

Di Java, apabila mengeksport aplikasi ke fail JAR, kelas tertentu mungkin mengandungi nama kelas diikuti dengan tanda dolar dan nombor, seperti Find$1.class. Ini berlaku kerana Java menyusun kelas dalam, termasuk kelas dalam tanpa nama, secara berasingan daripada kelas utama.

Kelas dalaman, yang ditakrifkan dalam kelas lain, membolehkan konsep pengaturcaraan berorientasikan objek seperti pengkapsulan dan kebolehgunaan semula kod. Mereka dijana pengkompil dan fail kelas mereka mempunyai konvensyen penamaan berikut:

  • Dinamakan kelas dalaman: OuterClass$InnerClass.class
  • Inner tanpa nama kelas: OuterClass$1.class (di mana 1 mewakili kelas tanpa nama)

Sebagai contoh, dalam kod berikut:

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

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

Kompilasi akan menjana fail kelas berikut :

  • OuterClass.class
  • OuterClass$InnerClass.class

Nama fail kelas tanda dolar berfungsi sebagai pemisah untuk membezakan antara luar dan dalam kelas. Ia menunjukkan bahawa kelas dalam tergolong dalam kelas luar yang ditentukan.

Atas ialah kandungan terperinci Mengapakah kelas yang disusun Java mengandungi nama seperti \"Find$1.class\"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn