Bab
kali ini saya akan membahas tentang Interface pada java. Penggunaan
interface pada java sangatlah penting. Pada pembuatan sebuah program,
penggunaan interface sangat dianjurkan pada layer dalam aplikasi.
Interface juga digunakan dalam best practice yang sering disebut dengan “code to interface” yang mana best practice menganjurkan dveloper untuk menggunakannya.
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 tentang sifat-sifat dari class-class. Mereka menyediakan
class-class tanpa memperhatikan lokasinya dalam hirarki class, untuk
mengimplementasikan sifat-sifat yang umum. Dengan catatan-catatan bahwa
interface-interface juga menunjukan polymorfisme, dikarenakan program
dapat memanggil method interface dan versi yang tepat dari method yang
dieksekusi dari tipe object yang melewati pemanggil method interface –
J.E.N.I.
Secara
teknis bisa dikatakan bahwa interface adalah class yang bersifat
abstract, semua method yang adalah public dan abstract. Berikut adalah
aturan-aturan tentang interface :
- modifier default yatu public atau tidak ada sama sekali. Jika tidak menggunakan modifier maka interface tersebut hanya dapat diakses dalam package yang sama.
- Semua variabel yang didefinisikan dalam interface secara otomatis adalah static final. Karena itu dalam proses pendefinisiannya harus diberikana nilai.
- Semua method dalam interface bersifat (default) abstract. Adapun bedanya dengan class abstract adalah kita tidak perlu menuliskan keyword abstract pada saat pendeklarasian method dalam interface.
- Kita dapat mengimplementasikan lebih dari satu interface (multiple inheritance) dengan memisahkan nama dari setiap interface dengan tanda koma.
- Semua method yang diimplementasikan haruslah public
- jika suatu class tidak mengimplementasikan semua method yang ada dalam interface, maka class tersebut harus dideclarasikan sebagai absract class.
- Class yang mengimplementasikan sebuah interface haruslah menggunakan keyword “implements”
Lalu bagaimana kita membuat sebuah interface ? Pada proses pembuatan interface, kita hanya harus menggunakan keyword “interface” diikuti dengan nama interface. Adapun contohnya yaitu :
Interface
biasanya digunakan sebagai “kontrak” agar class yang
mengimplementasikan interface dapat memiliki semua method yang
didefinisikan dalam interface tersebut, tetapi kita tidak ingin
mengekspos implementasinya.
Untuk
lebih jelasnya saya akan mengambil contoh pada dunia nyata. Misalkan
pembuat remote control dan pembuat tv. Seorang pembuat remote control
tersebut tidak perlu tahu merk tv dan siapa yang membuat tv tersebut
untuk dikontrol menggunakan remote control tersebut. Yang perlu
diketahui adalah interface apa yang digunakan oleh TV tersebut agar
dapat dikontrol. Demikian pulu si pembuat TV tidak perlu tahu bagaimana
remote control tersebut dibuat. Pembuat TV hanya perlu tahu interface
apa yang digunakan agar TV nya itu dapat dikontrol oleh remote control
tersebut.
package ten.tutorInterface; /** * * @author Teten */ public interface Control { void pindahChannel(int channel); void perbesarVolume(int volume); void perkecilVolume(int volume); }
package ten.tutorInterface.impl;
import ten.tutorInterface.Control;
/**
*
* @author Teten
*/
public class TVPolytron implements Control {
String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};
public void pindahChannel(int d) {
System.out.println("TVPolytron pindah ke channel : "+channel[d]);
}
public void perbesarVolume(int volume) {
System.out.println("TVPolyton diperbesar sebanyak : "+volume);
}
public void perkecilVolume(int volume) {
System.out.println("TVPolyton diperkecil sebanyak : "+volume);
}
}
package ten.tutorInterface.impl;
import ten.tutorInterface.Control;
/**
*
* @author Teten
*/
public class TVSamsung implements Control{
String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};
public void pindahChannel(int d) {
System.out.println("TVSamsung pindah ke channel : "+channel[d]);
}
public void perbesarVolume(int volume) {
System.out.println("TVSamsung diperbesar sebanyak : "+volume);
}
public void perkecilVolume(int volume) {
System.out.println("TVSamsung diperkecil sebanyak : "+volume);
}
}
package ten.control;
import ten.tutorInterface.Control;
/**
*
* @author Teten
*/
public class RemoteControl {
public void kirimPerintahKeTV(int aksi, Control tv, int tombol) {
switch (aksi) {
case 1:
tv.pindahChannel(tombol);
break;
case 2:
tv.perbesarVolume(tombol);
break;
case 3:
tv.perkecilVolume(tombol);
break;
}
}
}
import ten.control.RemoteControl;
import ten.tutorInterface.impl.TVPolytron;
import ten.tutorInterface.impl.TVSamsung;
/**
*
* @author Teten
*/
public class MainControl {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
TVPolytron polytron=new TVPolytron();
TVSamsung samsung=new TVSamsung();
RemoteControl remoteControl=new RemoteControl();
remoteControl.kirimPerintahKeTV(2, samsung, 2);
}
}
Source dari kode diatas dapat Anda download di sini
#Code sumber dari : sinau-java.blogspot.com
0 komentar:
Posting Komentar