Pemrograman Berorientasi Obyek dengan JAVA Interface Nur Hayatin, S.ST Teknik Informatika – UMM 2011
Sub Topik Deklarasi Interface Interface Modifier Implementasi Interface Hirarki Interface Inheritance pada interface Interface, class, dan abstract class
Interface Menggambarkan cara standart tentang behavior-behavior yang dimiliki oleh class. Berisi method abstract. Untuk model multi inheritance yang mengijinkan sebuah class dapat memiliki lebih dari satu superclass.
Deklarasi Interface Syntax : Contoh : (interface kosong) public interface [InterfaceName] { //beberapa method tanpa body } public interface Facsimile{ }
Contoh Interface public interface Facsimile{ int dotPerInches = 90; boolean dialPhone (String number); void getDocument(int nDoc); boolean sendDocument(int nDoc); void closePhone(); } Interface facsimile memiliki member : 1 konstanta, 4 method abstract.
Komponen Pembentuk Interface Modifier Keyword “interface”. Identifier Merupakan nama interface yang ditentukan oleh programmer. Body interface Berisi method abstract. Atau bisa juga ditambahkan konstanta.
Interface Modifier Jenis modifier yang dapat ditambahkan pada interface : Public Protected Private Static Abstract Interface dapat memiliki member berupa interface sendiri. Secara implisit member-interface tersebut akan bertipe public dan static.
Public Interface yang memiliki modifier public dapat diakses dimanapun, diluar maupun didalam package yang sama dengan class/interface yang mengakses. Contoh : public interface Facsimile{ }
Protected Modifier protected hanya berlaku untuk member-interface yang ada didalam sebuah class. Member-interface yang bertipe protected akan dapat diakses didalam subclass, baik didalam maupun diluar package. Contoh : public class Printer{ protected interface Facsimile{ }
Private Berlaku untuk member-interface yang ada didalam sebuah class. Member-interface yang bertipe private hanya dapat diakses oleh class yang memilikinya. Contoh : public class Printer{ private interface Nozzle{ }
Static Berlaku untuk member-interface yang ada didalam sebuah class. Jika member-interface berada didalam class maka secara implisit selalu static, sehingga akan diinisialisasi sekali saja oleh compiler yaitu pada saat class/interface yang memilikinya diinisialisasi.
Abstract Semua interface (termasuk member-interface) secara implisit selalu abstract. Karena interface ditujukan untuk menyimpan anggota berupa method abstract. Method abstract adalah method yang hanya berupa deklarasi saja. Method ini akan dideklarasi ulang/diimplementasi pada class yang menggunakan interface tersebut.
Implementasi Interface dapat diimplementasikan oleh sebuah class. Implementasi interface menggunakan keyword “implements”. Syarat : seluruh method abstract yang ada pada interface harus dideklarasi ulang didalam class yang mengimplementasikannya. Syntax : public class [className] implements [interfaceName] { //beberapa kode disini }
Contoh : Implementasi Interface public class Printer implements Facsimile{ boolean dialPhone (String number){ return true; } void getDocument(int nDoc){ } boolean sendDocument(int nDoc){ void closePhone(){ } } implements Class Printer melakukan implements terhadap Facsimile sehingga didalamnya dideklarasi ulang seluruh method abstract yang dimiliki oleh Facsimile.
Multi-implements Sebuah class dapat melakukan implements lebih dari satu interface. Contoh : Class Person implements terhadap 3 interface sekaligus, yaitu : PersonInterface, LivingThing dan WhateverInterface. class Person implements PersonInterface,LivingThing, WhateverInterface { //beberapa kode disini }
Multi-implements Multi-implements dapat menyelesaikan permasalahan multiple inheritance yang tidak diperbolehkan terjadi pada extends class. Gambaran multi-implements : Interface 1 Interface 2 Interface n class
Hirarki Interface Superinterface interface yang letaknya diatas interface lain. Subinterface interface yang letaknya dibawah interface lain. Super interface Sub interface
Inheritance pada Interface Interface dapat memiliki hubungan inheritance antar mereka sendiri. Menggunakan keyword “extends”. Contoh : interface PersonInterface merupakan superinterface dari student interface. public interface PersonInterface { . . . } public interface StudentInterface extends PersonInterface {
Implements SubInterface Sebuah class yang mengimplementasikan subinterface wajib mendeklarasi ulang seluruh method yang ada pada subinterface tersebut dan juga method yang ada pada superinterface-nya. Contoh : Karena StudentInterface merupakan subclass dari PersonInterface maka class Mahasiswa harus mendeklarasi ulang semua method abstract yang dimiliki oleh kedua interface tersebut. Class Mahasiswa implements StudentInterface { . . . }
Interface & Class Persamaan : Perbedaan : Berupa type data, sehingga interface dapat digunakan ditempat dimana sebuah class dapat digunakan (berhubungan dengan akses modifier) Perbedaan : Tidak dapat membuat object dari interface Tidak memiliki segala implementasi dari method
Interface & Abstract Class Persamaan : Bertipe abstract Memiliki method abstract Perbedaan : Interface hanya berisi method abstract Variabel yang dideklarasikan didalam interface merupakan constanta Interface dapat diimplemetasikan secara multi-inheritance
Kesimpulan Untuk membuat interface keyword yang dipakai adalah interface. Sedangkan untuk menggunakannya keyword yang dipakai adalah implements. Interface dapat digunakan untuk mengatasi permasalah multiple inheritance pada java.