Kamis, 23 Agustus 2012

Interface in Java

Hari ini mau tulis tentang interface di java. Interface itu object yang isinya hanya methode / fungsi. Biasa digunakan untuk "berinteraksi" dengan object lain tanpa tahu object lain itu seperti apa. Bingung??  Ok sama gw jg bingung :D, contoh yang paling gampang adalah ketika kita menggunakan remote tv ketika ingin menonton tv. Tombol remote tv adalah sebagai interface antara kita dan listrik yang ada di dalam remote tv.
Langsung aja kita buat simple contoh dari interface,

public interface HiListeners{
     public void say(String word);
}
Isi dari interface hanya fungsi / methode, dan tidak ada konstruktor, karena ini memang bukan class. Kemudian kita buat class yang mengimplement interface berikut.

public class Test implements HiListeners {
     public static void main(String[] args) {
            new Test().say("Ardi");
     }

     @Override
     public void say(String word) {
            System.out.println("Hi "+word);
     }
}

Jika di run maka outputnya : Hi Ardi
Untuk fungsi yang diimplement kita bisa override sesuka hati kita, dan setiap class yang mengimplement interface, maka harus menyertakan fungsi yang ada di interface tersebut.

Kemudian coba kita buat agak sedikit berbeda, kita buat class lagi, yakni Test2.java;

public class Test2 {
     public void addListeners(HiListeners hl) {
         hl.say("Ardi");
     }
}

Lalu kita coba mengganti badan class dari Test.java menjadi seperti ini;

public class Test implements HiListeners {
     public static void main(String[] args) {
           new Test().run();
     }

     public void run() {
          new Test2().addListeners(this);
     }

     public void say(String word) {
           System.out.println("Hi "+word);
     }
}

Kalo dirun makan outputnya akan sama seperti sebelumnya : Hi Ardi

Untuk class Test.java yang sebelum diedit dan yang setelah diedit, ada perbedaan. Dimana yang pertama kita hanya membuat satu class dan diimplement di class tersebut. Dan yang kedua, kita menambahkan satu class, yakni Test2.java. Dalam class Test2.java, ada fungsi yang menggunakan parameter interface. Kemudian dalam fungsi tersebut sudah diset parameter word sebagai Ardi. Mekanisme ini digunakan sewaktu-waktu jika kita melemparkan object interface sebagai parameter. Bingung ya?? sama gw jg bingung :D.

Bisa langsung dilihat pada class Test.java, bahwa disitu kita mengimplement interface HiListeners. Kemudian, kita membuat object Test2 pada fungsi run. Kemudian yang kita lempar itu object Test yang dalam hal ini bisa dikatakan object HiListeners, yakni dengan menggunakan keyword this. Maka outputnya akan sama seperti yang di atas. :)

Sekian dulu tulisan dari saya. Kalau kurang jelas bisa lihat di google. :)

Wassalam...

0 komentar:

Posting Komentar