Rumah > Java > javaTutorial > teks badan

Mengapa Kami Tidak Boleh Mengisytiharkan Kelas Statik Secara Terus di Java?

Barbara Streisand
Lepaskan: 2024-10-31 06:08:01
asal
341 orang telah melayarinya

Why Can't We Declare Static Classes Directly in Java?

Kelas Statik di Java: Mengapa Mereka Tidak Diisytiharkan?

Di Java, kelas ialah binaan asas untuk menyusun kod. Walau bagaimanapun, tidak seperti bahasa lain, anda tidak boleh mengisytiharkan kelas sebagai statik. Sekatan ini menimbulkan persoalan: mengapa tidak?

Jawapan: Kelas Bersarang untuk Fleksibiliti

Jawapannya terletak pada konsep kelas bersarang. Java membolehkan anda menentukan kelas dalam kelas lain, yang dikenali sebagai kelas bersarang. Kelas bersarang boleh sama ada statik atau dalaman.

Kelas bersarang statik diisytiharkan dengan kata kunci statik dan mempunyai akses kepada ahli statik kelas yang disertakan. Ia boleh digunakan tanpa membuat seketika kelas yang disertakan, menawarkan fleksibiliti dan kebolehgunaan semula kod.

Pertimbangkan contoh berikut:

<code class="java">class OuterClass {
    public static class StaticNestedClass {
        // ...
    }
}

class OtherClass {
    private OuterClass.StaticNestedClass staticNestedClass = new OuterClass.StaticNestedClass();
    // ...
}</code>
Salin selepas log masuk

Dalam contoh ini, StaticNestedClass ialah kelas OuterClass bersarang statik. Ia boleh dijadikan instantiated dalam OtherClass tanpa memerlukan contoh OuterClass.

Kelas Bersarang Bukan Statik: Kelas Dalam

Sebaliknya, kelas dalam diisytiharkan tanpa kata kunci statik dan mempunyai akses kepada kedua-dua ahli statik dan bukan statik kelas yang disertakan. Walau bagaimanapun, mereka memerlukan contoh kelas yang disertakan untuk dibuat.

Dalam contoh di atas, InnerClass ialah kelas dalaman OuterClass. Ia hanya boleh dibuat seketika selepas membuat tika OuterClass.

Faedah Kelas Bersarang Statik

Kelas bersarang statik menawarkan beberapa faedah:

  • Peningkatan kebolehgunaan semula kod dan enkapsulasi
  • Pengurangan gandingan untuk fleksibiliti kod yang lebih tinggi
  • Penggunaan dalam kelas utiliti, di mana akses terus ke kelas tertutup tidak diperlukan

Sumber dan Sumber Tambahan

Untuk mendapatkan maklumat lanjut tentang kelas bersarang di Java, rujuk sumber berikut:

  • [Tutorial Oracle tentang kelas bersarang](https:/ /docs.oracle.com/javase/tutorial/java/nestedclasses/)
  • [Java: Statik vs bukan statik kelas dalam](https://www.baeldung.com/java-inner-class- static-vs-non-static)
  • [Kelas dalam Java dan kelas bersarang statik](https://www.tutorialspoint.com/java/nested_class_vs_static_nested_class.htm)

Atas ialah kandungan terperinci Mengapa Kami Tidak Boleh Mengisytiharkan Kelas Statik Secara Terus di Java?. 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