7. Konsep Interface
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 bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan
program dapat memanggil method interface dan versi yang tepat dari method yang
akan dieksekusi tergantung dari tipe object yang melewati pemanggil method
interface – from J.E.N.I
Untuk memahami lebih mudah, interface sekumpula dari
method-method yang dibuat tapi belum ada operasi di dalam tubuh method
tersebut, interface ini bisa diturunkan atau diwariskan kepada class yang ingin
memakai method yang ada dalam masing-masing interface tersebut dengan keyword extends
[interface yang didefinisikan]. Dan juga sebuah class mengimplementasi 1
interface yang sudah dibuat dengan keyword implements.
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
}
Seperti penggunaan interface pada salah satu class interface berikut.
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);
}
Setelah itu kita menggunakan class yang akan mengimplementasi setiap method yang ada pada class interface RemoteAllInOne.
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);
}
}
Setelah itu kita membuat class yang berfungsi sebagai perantara pemanggil method sebelum kita masuk ke class main, atau pembuatan instance baru sebuah objek supaya dapat digunakan setiap interface yang dibuat tadi.
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;
}
}
}
Dan berikut adalah class main yang dipakai waktu pengeksekusian program.
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);
}
}