Rabu, 17 April 2013

Interface Java



Sedikit ringkasan interface pada Java
 
Interface adalah class yang hanya mengandung deklarasi method tanpa memiliki implementasi dan semua property yang dimilikinya bersifat final. Interface mirip dengan class abstrak, tetapi interface tidak terikat dengan class hierarki. Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum.

Berikut ini adalah aturan tentang pendeklarasian interface:
 1.Modifier yang digunakan hanya public atau tidak sama sekali. Jika tidak menggunakan modifier maka   interface tersebut hanya dapat diakses dalam package yang sama.
 2.Semua variabel yang dideklarasikan dalam interface secara otomatis adalah static final. Karena itu waktu pendeklarasian harus diberikan nilai.
3.Semua method adalah abstrak. Bedanya dengan class abstrak adalah kita tidak perlu menuliskan keyword abstrak pada saat mendeklarasikan method dalam interface.
4.Kita dapat mengimplementasikan lebih dari satu interface (multiple inheritance) dengan memisahkan nama dari setiap interface dengan tanda koma.
5.Dapat terjadi saat kita mengimplementasikan lebih dari satu interface ternyata interface – interface tersebut memiliki method yang sama. Dalam hal ini method yang akan diimplementasi adalah method yang berada pada posisi pertama.
6.Semua method yang diimplemetasikan harus public.
7.Jika kita tidak mengimplementasikan semua method yang ada pada interface, maka class tersebut harus dideklarasikan sebagai abstract class.
Ciri-ciri dari interface pada Java:
1.Method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.
2.Tidak bisa membuat instance atau objek baru dari sebuah interface.
3.Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method.
Keyword pada interface:
Abstrak:
Kelas yang terletak pada posisi tertinggi pada hierarki kelas.
Implements: Kelas untuk menentukan satu atau lebih interface yang di implementasikan oleh kelas saat ini. Kelas A mewarisi jenis dan metode abstrak dinyatakan oleh interface.
Interface: Kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya.

Kira-kira gini contohnya program interface di Java

interface AlatMusik {
void mainkan();
void setelNada();
String ambilNama();
}
class AlatMusikPetik implements AlatMusik{
protected String nama;
public void mainkan() {
System.out.println(ambilNama() + "dimainkan dengan cara petik");
}
public void setelNada() {
System.out.println("setel nada pada " + ambilNama());
}
public String ambilNama() {
return nama;
}
}
class AlatMusikTiup implements AlatMusik{
protected String nama;
public void mainkan() {
System.out.println(ambilNama() + "dimainkan dengan cara tiup");
}
public void setelNada() {
System.out.println("setel nada pada " + ambilNama());
}
public String ambilNama() {
return nama;
}
}
class AlatMusikPukul implements AlatMusik{
protected String nama;
public void mainkan() {
System.out.println(ambilNama() + "dimainkan dengan cara pukul");
}
public void setelNada() {
System.out.println("setel nada pada " + ambilNama());
}
public String ambilNama() {
return nama;
}
}
class Gitar extends AlatMusikPetik {
Gitar(String nama){
this.nama = nama;
}
}
class Bass extends AlatMusikPetik {
Bass(String nama){
this.nama = nama;
}
}
class DemoInterface {
public static void main(String[] args) {
AlatMusikPetik gitar, bass;
gitar = new Gitar("Gitar");
bass = new Bass("Bass");
gitar.mainkan();
gitar.setelNada();
System.out.println();
bass.mainkan();bass.setelNada();
}
}

Output:
Gitar dimainkan dengan cara petik
Setel nada pada Gitar

Bass dimainkan dengan cara petik
Setel nada pada Bass

Tidak ada komentar:

Posting Komentar