Rumah > Java > javaTutorial > teks badan

Mengapa Kelas Kompilasi Java Mempunyai Tanda Dolar?

Patricia Arquette
Lepaskan: 2024-10-26 18:54:29
asal
1006 orang telah melayarinya

Why Do Java Compiled Classes Have Dollar Signs?

Kelas Kompilasi Java dengan Tanda Dolar

Pengaturcara Java sering menghadapi konvensyen penamaan yang pelik dalam fail kelas yang disusun mereka. Sesetengah kelas mempamerkan corak ganjil nama kelas mereka diikuti dengan tanda dolar dan nombor. Contohnya, anda mungkin melihat fail seperti:

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

Menyelidiki Sebabnya

Bertentangan dengan kepercayaan popular, saiz kelas tidak mencetuskan tingkah laku ini. Jawapannya terletak pada kelas dalaman. Apabila kelas mengandungi kelas dalaman, pengkompil menjana fail kelas berasingan untuk kelas dalaman tersebut. Nama fail mengikut corak:

OuterClass.class
OuterClass$InnerClass.class
Salin selepas log masuk

Kelas Dalaman Tanpa Nama

Kelas dalam tanpa nama, yang ditakrifkan tanpa nama tersuai, diberikan nombor. Ini menerangkan "Find$1.class" dan nama fail yang serupa.

Contoh

Pertimbangkan coretan kod berikut:

public class OuterClass {
    class InnerClass {
    }

    Serializable anonymous = new Serializable() {
    };
}
Salin selepas log masuk

Pengkompil akan menjana fail kelas berikut:

  • OuterClass.class
  • OuterClass$InnerClass.class
  • OuterClass$1.class

Kelas Tanpa Nama Dipertimbangkan?

Penggunaan kelas dalaman tanpa nama telah tertakluk kepada perdebatan. Sesetengah menganggapnya sebagai bau kod, manakala yang lain berpendapat kesesuaiannya dalam senario tertentu. Akhirnya, keputusan untuk menggunakannya adalah berdasarkan keperluan reka bentuk khusus.

Atas ialah kandungan terperinci Mengapa Kelas Kompilasi Java Mempunyai Tanda Dolar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan