Medan Statik Dilarang dalam Kelas Dalam: Rasional
Java melarang pengisytiharan medan dan kaedah statik dalam kelas dalam (atau kelas dalaman biasa) disebabkan sifat mereka yang bergantung kepada contoh.
Kelas dalaman, tidak seperti kelas bersarang statik, terikat dengan contoh kelas lampiran mereka. Ini bermakna bahawa setiap tika kelas dalam mempunyai perkaitan unik dengan contoh khusus kelas tertutup. Akibatnya, membenarkan medan statik dalam kelas dalaman akan mewujudkan kesamaran dari segi contoh medan statik itu dimiliki.
Pertimbangkan contoh berikut:
class OuterClass { class InnerClass { static int i = 100; // compile error } }
Jika medan statik dibenarkan masuk kelas dalam, tidak akan ada cara yang jelas untuk menentukan contoh OuterClass medan statik i milik. Kekaburan ini boleh membawa kepada ralat masa jalan dan gelagat tidak konsisten.
Selain itu, membenarkan medan statik dalam kelas dalaman akan bercanggah dengan prinsip pergantungan berasaskan contoh. Memandangkan kelas dalam bergantung pada kejadian kelas yang disertakan, tidak masuk akal untuk mereka mempunyai ciri statik, yang direka bentuk untuk beroperasi secara bebas daripada sebarang tika.
Ringkasnya, Java melarang medan dan kaedah statik dalam kelas dalaman untuk mengekalkan:
Atas ialah kandungan terperinci Mengapa Medan Statik Dilarang dalam Kelas Dalaman Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!