Pemrograman Berorientasi Obyek dengan JAVA Interface

Post on 15-Jan-2016

120 views 13 download

description

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. - PowerPoint PPT Presentation

Transcript of Pemrograman Berorientasi Obyek dengan JAVA Interface

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.