interface
Pengertian Interface Interface merupakan mekanisme yang disediakan oleh java yang memungkinkan berbagai konstanta atau menentukan bentuk metode yang dapat digunakan oleh sejunlah kelas. Sekilas tentang interface mirip dengan kelas abstrak, karena kelas abstrak juga menentukan bentuk metode untuk subkelas. Namun interface dapat dibedakan dengan kelas abstrak dalam hal seperti berikut:
Cont’d Kelas abstrak dapat mengandung metode abstrak meupun metode tidak abstrak, sedangkan interface hanya dapat mengandung metode abstrak. Kelas abstrak dapat mendeklarasikan variabel instan, sedangkan interface hanya dapat mendefinisikan konstanta. Kelas abstrak digunakan oleh kelas lain melalui pewarisan (via kata kunci extends), sedangkan interface digunakan oleh kelas lain tidak melalui mekanisme itu.
Mendeklarasikan Interface Interface menyerupai kelas. Perbedaannya, kata kunci interface menggantikan kedudukan kata kunci class. Bentuk pendeklarasiannya adalah seperti berikut: Penentu akses public biasa digunakan dengan tujuan agar interface dapat diakses oleh kelas manapun. Jika tidak ada penetu akses public, interface hanya dapat diakses oleh kelas-kelas yang berada dalam satu paket yang sama Public interface namaInterface{ //metode-tampa implementasi // difenisi konstanta }
Pewarisan Interface Suatu interface juga dapat mewarisi interface yang lain, sperti subkelas mewarisi superkelas. Sebagai contoh: Interface warnalebihlengkap extends intwarna{ Int Abu-Abu=128; }
Menggunakan Interface Sebuah class dapat menggunakan interface melalui kata kunci Implements. Bentuk seperti berikut: Jika interface yang digunakan lebih dari satu, antar-interface dipisahkan oleh tanda koma. Contoh sebagai berikut: Class NamaKelas1 [extends NamaKelas2] Implements Namainterface[NamaInterface2]{ //tubuh kelas }
Cont’d interface IntLampu { public static final int KEADAAN_HIDUP = 1; public static final int KEADAAN_MATI = 0; public abstract void hidupkan(); public abstract void matikan(); } // Akhir interface class Lampu implements IntLampu{ private int statusLampu = 0; public void hidupkan() { if (this.statusLampu == KEADAAN_MATI){ this.statusLampu = KEADAAN_HIDUP; System.out.println("Lampu hidup"); } else { System.out.println("Lampu sudah hidup");
Cont’d public void matikan() { if (this.statusLampu == KEADAAN_HIDUP){ this.statusLampu = KEADAAN_MATI; System.out.println("Lampu mati"); } else { System.out.println("Lampu sudah mati"); } // Akhir kelas public class TesInterface { public static void main(String[] args) { Lampu lampuKamar = new Lampu(); lampuKamar.hidupkan(); lampuKamar.matikan();
Hasil dari Program
Cont’d package bab13; //Berkas: TesInterface2.java interface IntLampuPenyuram extends IntLampu { public static final int POSISI_MAKSIMUM = 10; public static final int POSISI_MINIMUM = 0; public abstract void redupkan(); public abstract void buatLebihTerang(); } // Akhir interface class LampuPenyuram implements IntLampuPenyuram { private int statusLampu = 0; public void hidupkan() { this.statusLampu = POSISI_MAKSIMUM; System.out.print("hidupkan(): "); System.out.print("Lampu hidup. "); System.out.println("Posisi tombol: " + this.statusLampu); } public void matikan() { this.statusLampu = POSISI_MINIMUM; System.out.print("matikan(): "); System.out.println("Lampu mati "); public void redupkan() { if (this.statusLampu != POSISI_MINIMUM) this.statusLampu--;
Cont’d System.out.print("redupkan(): "); if (this.statusLampu == POSISI_MINIMUM) System.out.println("Lampu mati "); else { System.out.print("Lampu hidup. "); System.out.println("Posisi tombol: " + this.statusLampu); } public void buatLebihTerang() { if (this.statusLampu != POSISI_MAKSIMUM) this.statusLampu++; System.out.print("buatLebihTerang(): "); } // Akhir kelas public class TesInterface2 { public static void main(String[] args) { LampuPenyuram lampuKamar = new LampuPenyuram(); lampuKamar.hidupkan(); lampuKamar.redupkan(); lampuKamar.buatLebihTerang(); lampuKamar.matikan();
Hasil dari Program
Terima Kasih