Pemrograman Berorientasi Obyek dengan JAVA
Interface
Nur Hayatin, S.STTeknik 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
• Interface facsimile memiliki member : 1 konstanta, 4 method abstract.
public interface Facsimile{ int dotPerInches = 90; boolean dialPhone (String number); void getDocument(int nDoc); boolean sendDocument(int nDoc); void closePhone();}
Komponen Pembentuk Interface
1. Modifier2. Keyword “interface”.3. Identifier
Merupakan nama interface yang ditentukan oleh programmer.
4. Body interfaceBerisi method abstract. Atau bisa juga ditambahkan konstanta.
Interface Modifier
• Jenis modifier yang dapat ditambahkan pada interface :1. Public2. Protected3. Private4. Static5. 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
• Class Printer melakukan implements terhadap Facsimile sehingga didalamnya dideklarasi ulang seluruh method abstract yang dimiliki oleh Facsimile.
public class Printer implements Facsimile{ boolean dialPhone (String number){
return true; } void getDocument(int nDoc){ } boolean sendDocument(int nDoc){
return true; } void closePhone(){ }
}
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
class
Interface 2 Interface n
Hirarki Interface
• Superinterfaceinterface yang letaknya diatas interface lain.
• Subinterfaceinterface 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 :– 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.
Top Related