Larangan Java Medan Statik dalam Kelas Dalam
Di Jawa, kelas dalam biasanya dikelaskan kepada dua jenis: kelas dalam contoh dan bersarang statik kelas. Kelas dalam contoh, juga dikenali sebagai kelas dalam bukan statik, ditakrifkan dalam kelas luar tetapi bergantung pada tika kelas luar itu. Kebergantungan ini berpunca daripada fakta bahawa kelas dalam contoh mempunyai akses kepada ahli bukan statik contoh yang dilampirkan.
Java melarang medan dan kaedah statik dalam kelas dalam contoh kerana percanggahan yang wujud yang akan ditimbulkan. Ahli statik biasanya dikaitkan dengan kelas itu sendiri dan tidak memerlukan contoh kelas untuk wujud. Walau bagaimanapun, kelas dalam contoh sememangnya bergantung pada kewujudan tika bersama.
Pertimbangkan contoh berikut:
class OuterClass { class InnerClass { static int i = 100; // compile error static void f() { } // compile error } }
Dalam contoh ini, kelas dalam contoh InnerClass cuba untuk menentukan medan statik dan kaedah. Walau bagaimanapun, pengisytiharan ini mengakibatkan ralat penyusunan kerana Java tidak membenarkan binaan sedemikian.
Reka bentuk bahasa dan aspek pelaksanaan di sebalik larangan ini boleh difahami seperti berikut:
Kesimpulannya, larangan Java terhadap medan statik dan kaedah dalam contoh kelas dalaman adalah akibat logik sifatnya yang bergantung kepada contoh, menguatkuasakan perbezaan antara jenis kelas ini dan memastikan ketekalan dalam reka bentuk dan pelaksanaan bahasa.
Atas ialah kandungan terperinci Mengapa Kelas Dalaman Instance Java Tidak Boleh Mempunyai Medan dan Kaedah Statik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!