Pengisytiharan Kelas Berbilang dalam Fail Java Tunggal
Dalam Java, adalah mungkin untuk mentakrifkan berbilang kelas peringkat atas dalam satu fail, tetapi dengan sekatan bahawa hanya satu daripada kelas ini boleh menjadi awam (seperti JLS §7.6).
Adakah terdapat istilah khusus untuk teknik ini?
Walaupun tiada nama formal untuk amalan ini yang serupa dengan "dalaman," "bersarang, " atau "tanpa nama", ia boleh dirujuk sebagai kelas berbilang peringkat atas pengisytiharan.
Adakah kelas menengah dihadkan daripada dirujuk dalam unit kompilasi lain?
JLS sememangnya menyatakan bahawa Mesin Maya Java (JVM) boleh menguatkuasakan sekatan bahawa kelas menengah ini tidak boleh "dirujuk oleh kod dalam unit kompilasi pakej yang lain." Walau bagaimanapun, had ini tidak dikuatkuasakan secara konsisten merentas pelaksanaan Java.
Penjelasan Gelagat Pelaksanaan Java
Walaupun sesetengah pelaksanaan Java mungkin tidak secara aktif melarang rujukan silang fail ini, mereka mempunyai batasan yang berkesan menghalangnya. Sebagai contoh, jika kelas awam bernama Foo merujuk kepada kelas peringkat atasan lain bernama Bar daripada fail lain, kompilasi Foo mungkin gagal dengan ralat yang serupa: "tidak dapat mencari simbol: kelas Baz". Ralat ini timbul kerana pengkompil tidak tahu fail sumber mana yang hendak dicari untuk Bar kelas yang dirujuk.
Untuk mengelakkan isu ini, adalah dinasihatkan untuk mengehadkan setiap fail sumber kepada hanya satu kelas peringkat atas, melainkan kelas menengah kelas perlu mengakses kelas awam atas sebab tertentu.
Atas ialah kandungan terperinci Bolehkah Berbilang Kelas Peringkat Atas Wujud dalam Fail Java Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!