Kelas Bersarang dalam Java

 on Wednesday, August 6, 2014  

Didalam sebuah kelas (class) dalam Java, diperbolehkan adanya suatu pendeklarasian kelas baru di dalamnya. Kelas semacam ini biasanya disebut Kelas Bersarang. Sebagian programmer java menyebutnya sebagai inner class. Ada pula yang menyebutnya sebagai Nested Class. Tidak ada batasan dalam membuat kelas bersarang. Artinya kita boleh saja membuat kelas didalam kelas bersarang. Contoh, kita bisa buat kelas Bebek dalam kelas Unggas dalam kelas Binatang. 

Supaya lebih mudah membayangkan, perhatikan contoh dibawah ini :

public class Binatang {
      public class Unggas {
               public class Bebek {
                      // body kelas Bebek
}
}
}


Dengan sifatnya yang bersarang, kelas yang ada didalam kelas ini menjadi anggota dari kelas yang melingkupinya. Berdasar contoh diatas, kelas Bebek menjadi anggota dari kelas Unggas. Sedangkan kelas Unggas merupakan anggota dari kelas Binatang.

Bolehkah kita membuat kelas lain lagi didalam kelas Bebek? Tentunya boleh boleh saja. Nantinya kelas baru dalam kelas Bebek ini otomatis menjadi anggota kelas Bebek juga.

Mengapa kita harus membuat kelas bersarang? Ternyata kelas bersarang ada gunanya sendiri lho. Kita dapat menerapkan kelas bersarang untuk mendeklarasikan hubungan antara dua kelas dimana kelas di dalamnya hanya ada di kelas diatasnya. Contoh, kelas Bebek hanya bisa dijalankan dalam kelas Unggas, kelas Unggas sendiri hanya bisa jalan didalam kelas Binatang. Contoh lainnya, bila kita membuat kelas Listener untuk event yang khusus oleh sebuah kelas, misalnya tombol atau mouse diklik dalam sebuah kelas yang berupa Applet. Maka kita mendeklarasikan kelas Listener tersebut sebagai anggota dari kelas yang memproduksi event.

Tetapi, kelas bersarang juga bisa dideklarasikan secara lokal, yaitu di dalam body method. Kelas seperti ini dinamakan local inner class atau local nested class. 
Perhatikan contoh berikut :

public void ujikelasbersarang() {
 class Bebek {
// body kelas Bebek;
 }
}



Selain contoh sebelumnya, kelas bersarang juga dapat digunakan bila sebuah kelas membutuhkan kelas lain untuk dapat berfungsi. Maka kelas tersebut dideklarasikan sebagai anggota dari kelas yang memiliki kebutuhannya. Misalnya kita ingin membuat kelas yang berupa dialog, dan dialog ini membutuhkan sebuah kelas lain sebagai parent dari dialog ini. Maka kita meletakkan kelas dialog tersebut dalam kelas parentnya.

Ada beberapa hal yang harus diperhatikan antara lain bahwa kelas yang ada dalam kelas tidak boleh memiliki member static. Perhatikan contoh berikut :

class Unggas
  {
   class Bebek
   {
    void metoda1()
     {
      //body metoda1;
     {
   }
 }
 
Kelas Bebek disini tidak boleh memiliki member bertipe static.
   
Contoh dalam penerapannya :
   
package cobakelasbersarang;
class Unggas
{
    public double hasil(int a,int b)
    {
        double c = a + b * a;
        return c;
    }
    class Bebek
    {
        void methodclassBebek(int x,int y)
        {
            x = 3;
            y = 5;
            double z = hasil(x, y);
            System.out.println(z);
        }
    }
}

public class Main {

    public static void main(String[] args)
    {
        int x1 = 0;
        int x2 = 0;
            Unggas classUnggas = new Unggas();
            Unggas.Bebek classBebek = classUnggas.new Bebek();
           classBebek.methodclassBebek(x1, x2);
    }
}


Gimana?
Kelas Bersarang dalam Java 4.5 5 Darto Iwan Wednesday, August 6, 2014 kelas, bersarang, nested, inner, class, java Didalam sebuah kelas (class) dalam Java, diperbolehkan adanya suatu pendeklarasian kelas baru di dalamnya. Kelas semacam ini biasanya diseb...


1 comment:

Silakan berkomentar ....