Rumah  >  Artikel  >  Java  >  Apakah Perbezaan Utama antara Kelas Bersarang Statik dan Bukan Statik di Jawa?

Apakah Perbezaan Utama antara Kelas Bersarang Statik dan Bukan Statik di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-11-09 22:41:02652semak imbas

What are the Key Differences between Static and Non-Static Nested Classes in Java?

Kelas Bersarang Statik lwn. Bukan Statik di Java

Kelas Bersarang, juga dikenali sebagai kelas dalam, menyediakan cara untuk mengumpulkan kelas berkaitan dalam satu fail sumber. Walau bagaimanapun, terdapat perbezaan utama antara kelas bersarang statik dan bukan statik.

Kelas Bersarang Statik

Tidak seperti kelas bersarang bukan statik, kelas bersarang statik tidak mempunyai akses kepada medan bukan statik atau kaedah kelas yang disertakan. Mereka diisytiharkan menggunakan kata kunci statik dalam kelas yang disertakan.

public class OuterClass {

    private int x;

    public static class StaticNestedClass {

        public void doSomething() {
            // Cannot access 'x' as it is non-static
        }
    }
}

Kelas Bersarang Bukan Statik

Kelas bersarang bukan statik, juga dipanggil kelas dalam, mempunyai akses kepada ahli statik dan bukan statik kelas yang disertakan. Mereka boleh mengakses medan dan kaedah bukan statik secara langsung dan ahli statik menggunakan sintaks OuterClass.staticMember.

public class OuterClass {

    private int x;

    public class NonStaticNestedClass {

        public void doSomething() {
            System.out.println(x);
        }
    }
}

Perbezaan Utama

  • Ketergantungan Contoh: Kelas bersarang statik tidak bergantung pada contoh kelas yang disertakan, manakala kelas bersarang bukan statik melakukannya.
  • Akses ke Kelas Melampirkan: Kelas bersarang statik tidak boleh mengakses ahli kelas bersarang bukan statik, manakala kelas bersarang bukan statik boleh.
  • Penciptaan: Kelas bersarang statik boleh dibuat tanpa membuat contoh kelas yang disertakan, manakala kelas bersarang bukan statik mesti dibuat dalam contoh kelas bersarang.

Contoh Penggunaan

  • Kelas bersarang statik berguna untuk mentakrifkan utiliti atau kelas pembantu yang secara logiknya berkaitan dengan kelas yang dilampirkan tetapi tidak memerlukan akses kepada contoh khususnya data.
  • Kelas bersarang bukan statik sesuai untuk menentukan kelas yang perlu berinteraksi rapat dengan kelas yang disertakan dan mempunyai akses kepada keadaan dalamannya.

Atas ialah kandungan terperinci Apakah Perbezaan Utama antara Kelas Bersarang Statik dan Bukan Statik di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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