Kelas Nested di Java: Panduan Lengkap – Codewithaden

Java Nested Class didefinisikan ketika kelas hadir/didefinisikan dalam kelas lain. Lingkup kelas bersarang didefinisikan dalam braket keriting. Dimungkinkan untuk mendefinisikan kelas dalam kelas lain; Kelas seperti itu dikenal sebagai kelas bersarang.

Kelas bersarang di Java

Java Nested Class memungkinkan Anda untuk secara logis mengelompokkan kelas yang hanya digunakan di satu tempat; dengan demikian, itu meningkatkan penggunaan enkapsulasi dan membuat kode yang lebih mudah dibaca dan dapat dipelihara.

Fitur kelas bersarang

  1. Kelas bersarang dapat mengakses anggota kelas atas, tetapi kelas atas tidak dapat mengakses anggota kelas bersarang di Java.
  2. Kelas juga disebut anggota kelas yang tertutup.
  3. Kita dapat menyatakan kelas bersarang sebagai pribadi, publik, terlindungi, atau default.

Sintaksis

Lihat sintaks berikut.

class outer {
  // statements of outer class
  class inner {
    // statements of inner class
  }
} // outer close
 

Jenis kelas bersarang

  1. Kelas bersarang non-statis (kelas dalam)
  2. Kelas bersarang statis

Kelas bersarang non-statis

Kelas bersarang non-statis juga disebut kelas dalam di mana kelas dalam memiliki semua hak untuk mengakses anggota kelas luar. Misalnya, kelas dalam dapat mengakses anggota pribadi, terlindungi, atau default dari kelas luar, tetapi sebaliknya tidak dimungkinkan, yaitu, kelas luar tidak dapat mengakses anggota kelas dalam. Kelas dalam selalu dibuat dalam ruang lingkup kelas luar.

Lagi dibagi menjadi dua kategori:

  1. Kelas Lokal
  2. kelas anonim
  3. Kelas Dalam Metode-Lokal

Program untuk Kelas Dalam

class outer {
  private int a = 1; // private member

  static int b = 2; // static member

  int c = 3; // non-static member

  class inner {
    void show() {
      System.out.println("private member of outer class=" + a);

      System.out.println("static member of outer class=" + b);
      System.out.println("non-static member of outer class=" + c);
    } // method close
  } // inner class close
} // outer class close

class nested {
  public static void main(String args[]) {
    outer obj = new outer();
    outer.inner obj1 = obj.new inner();
    obj1.show();
  }
} 

Lihat outputnya.

Nested

Kelas bersarang statis

Kelas bersarang statis adalah kelas yang didefinisikan dalam kelas lain dengan pengubah statis dengan nama kelas karena kelas didefinisikan dengan pengubah statis sehingga hanya dapat mengakses anggota statis dari kelas luar tetapi bukan anggota non-statis.

Seperti halnya metode dan variabel kelas, kelas bersarang statis dikaitkan dengan kelas luarnya. Seperti metode kelas statis, kelas bersarang statis tidak dapat merujuk langsung ke variabel instance atau metode yang didefinisikan dalam kelas tertutup. Itu dapat menggunakannya hanya melalui referensi objek.

Kelas dalam statis adalah kelas bersarang, yang merupakan anggota statis dari kelas luar. Ini dapat diakses tanpa instantiasi kelas luar, menggunakan anggota statis lainnya. Sama seperti anggota statis, kelas bersarang statis tidak memiliki akses ke variabel instance dan metode kelas luar.

Sintaksis

Outer classname.inner classname object_name=new outer classname.inner classname( );
 

Program untuk Kelas Statis

class outer {
  private static int a = 1;

  static int b = 2;

  int c = 3;

  static class inner {
    void show() {
      System.out.println("private member of outer class=" + a);
      System.out.println("static member of outer class=" + b);
      // System.out.println("non-static member of outer class="+c); //this statement
      // is not ligal as the innerclass is static and outerclass is non-static
    }
  }
}

class static_nested {
  public static void main(String args[]) {
    outer.inner obj = new outer.inner();
    obj.show();
  }
}
 

Lihat outputnya.

Static

#Diferensi antara kelas bersarang statis dan dalam atau non-statis

  1. Kelas bersarang statis tidak secara langsung memiliki akses ke anggota lain (variabel dan metode non-statis) dari kelas yang tertutup karena, karena merupakan kelas statis, ia membutuhkan akses ke anggota non-statis dari kelas yang tertutup melalui objek.
  2. Kelas statis Tidak dapat secara langsung merujuk anggota non-statis dari kelas tertutup karena pembatasan ini, dan kelas bersarang statis jarang digunakan.
  3. Kelas bersarang non-statis atau kelas dalam Memiliki akses ke semua anggota (variabel dan metode statis dan non-statis, termasuk pribadi) dari kelas luar mereka. Mereka dapat merujuk mereka secara langsung dengan cara yang sama seperti anggota non-statis lainnya dari kelas luar.

Itu untuk tutorial ini.

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *