Sabtu, 11 Mei 2013

Interface dalam Java

05.07

Share it Please
    Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant).  Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh. Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class.

 Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwainterface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung daritipe object yang melewati pemanggil method interface.
  

Kenapa Kita Memakai Interface?
Kita akan menggunakan interface jika kita ingin class yang tidak berhubungan
mengimplementasikan method yang sama. Melalui interface-interface, kita dapatmenangkap kemiripan diantara class yang tidak berhubungan tanpa membuatnya seolaholah class yang berhubungan

Ciri-ciri dari interface adalah sebagai berikut..
  • Method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.
  • Tidak bisa membuat instance atau objek baru dari sebuah interface.
  • Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method. Bagaimanapun, sebuah interface tidak punya sebuah kode implementasi sedangkan class memiliki salah satunya.

public interface [InterfaceName]
{
//beberapa method tanpa isi
}
public interface RemoteAllInOne {

 public void pindahChannel(int channel);

 public void perbesarVolume(int kpsts);

 public void perkecilVolume(int kpsts);

 public void perkecilZoom(int kpsts);

 public void perbesarZoom(int kpsts);
}
public class BenQ implements RemoteAllInOne {

 String[] menuTV = {"ANTV", "INDOSIAR", "TRANS-TV", "TPI", "RCTI", "SCTV", "GLOBAL-TV"};

 public void pindahChannel(int channel) {
 System.out.println("LCD BENQ Pindah Channel ke - " + this.menuTV[channel]);
 }

 public void perbesarVolume(int kpsts) {
 System.out.println("LCD BENQ Perbesar Vol : " +kpsts);
 }

 public void perkecilVolume(int kpsts) {
 System.out.println("LCD BENQ Pekecil Vol : " + kpstss);
 }

 public void perkecilZoom(int kpsts) {
 System.out.println("LCD BENQ Pekecil Zoom : " + kpsts);
 }

 public void perbesarZoom(int kpsts) {
 System.out.println("LCD BENQ Pebesar Zoom : " + kpsts);
 }
}
public class MyRemoteAllInOne {
 public void sendRequest(int aksi, RemoteAllInOne rmt, int tombol){
 switch(aksi){
 case 1:
 rmt.pindahChannel(tombol);
 break;
 case 2 :
 rmt.perkecilVolume(tombol);
 break;
 case 3 :
 rmt.perbesarVolume(tombol);
 break;
 case 4 :
 rmt.perkecilZoom(tombol);
 break;
 case 5 :
 rmt.perbesarZoom(tombol);
 break;
 }
 }
}
public class Tester {

 /**
 * @param args the command line arguments
 */
 public static void main(String[] args) {
 Ephson ep = new Ephson();
 BenQ bq = new BenQ();
 Mitshubishi mt = new Mitshubishi();
 MyRemoteAllInOne my = new MyRemoteAllInOne();
 my.sendRequest(1, mt, 4);
 my.sendRequest(1, ep, 5);
 my.sendRequest(1, bq, 6);
 my.sendRequest(2, mt, 4);
 }
}


Semoga bermanfaat. :)

0 komentar:

Posting Komentar