Rumah >Java >javaTutorial >Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan artikel anda: Pendek & Ringkas: * Mengapa Kelas Dalaman Tidak Statik Tidak Boleh Mempunyai Kaedah Statik? * Kaedah Statik dalam Kelas Dalaman: Evolusi Java * Boleh
Kaedah Statik dalam Kelas Dalam
Kelas dalam bukan statik tidak boleh mempunyai kaedah statik. Sekatan ini berpunca daripada cara kelas dalam dikaitkan dengan kejadian kelas lampirannya.
Penalaran:
Tokoh kelas dalaman wujud dalam konteks kejadian bagi kelas luar. Oleh itu, ia tidak boleh mentakrifkan kaedah statik secara bebas, yang mengikut takrifannya tergolong dalam kelas itu sendiri, bukan kejadian tertentu.
Pertimbangkan coretan kod:
<code class="java">public class Foo { class Bar { static void method() {} // Compiler error } }</code>
Pengkompil menimbulkan ralat kerana kaedah( ) diisytiharkan sebagai statik dalam Bar kelas dalam bukan statik.
Kelas Dalaman Statik:
Sebaliknya, kelas dalam statik ditakrifkan dalam skop bahagian luar kelas itu sendiri, tanpa kaitan langsung dengan contoh. Akibatnya, ia boleh mengandungi kaedah statik:
<code class="java">public class Foo { static class Bar { static void method() {} // Valid } }</code>
Perubahan Java 16:
Dalam Java 16 dan kemudian, kedua-dua kelas dalaman statik dan bukan statik boleh tentukan kaedah statik. Perubahan ini diperkenalkan untuk meningkatkan organisasi kod dan fleksibiliti.
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan artikel anda: Pendek & Ringkas: * Mengapa Kelas Dalaman Tidak Statik Tidak Boleh Mempunyai Kaedah Statik? * Kaedah Statik dalam Kelas Dalaman: Evolusi Java * Boleh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!