OBJECT INTERFACE
Pengertian interface adalah
himpunan operasi-operasi yang menentukan perilaku sebuah objek, biasanya
digunakan apabila kita ingin menentukan apa saja yang harus dilakukan oleh satu
class tetapi tidak menentukan bagaimana cara untuk melakukannya.
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.
Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface.
Kita akan menggunakan interface jika kita ingin class yang tidak berhubungan mengimplementasikan method yang sama. Melalui interface-interface, kita dapat menangkap kemiripan diantara class yang tidak berhubungan tanpa membuatnya seolah - olah class yang berhubungan.
Mari kita ambil contoh class Line dimana berisi method yang menghitung panjang dari garis dan membandingkan object Line ke object dari class yang sama. Sekarang, misalkan kita punya class yang lain yaitu MyInteger dimana berisi method yang membandingkan object MyInteger ke object dari class yang sama.
Seperti yang kita lihat disini, kedua class-class mempunyai method yang mirip dimana membandingkan mereka dari object lain dalam tipe yang sama, tetapi mereka tidak berhubungan sama sekali. Supaya dapat menjalankan cara untuk memastikan bahwa dua class-class ini mengimplementasikan beberapa method dengan tanda yang sama, kita dapat menggunakan sebuah interface untuk hal ini. Kita dapat membuat sebuah class interface, katakanlah interface Relation dimana mempunyai deklarasi method pembanding. Relasi interface dapat dideklarasikan sebagai,
--------------------------------------------------------
public interface Relation
{
public boolean isGreater( Object a, Object b);
public boolean isLess( Object a, Object b);
public boolean isEqual( Object a, Object b);
}
--------------------------------------------------------
Alasan lain dalam menggunakan interface pemrograman object adalah untuk menyatakan
sebuah interface pemrograman object tanpa menyatakan classnya. Seperti yang dapat kita lihat nanti dalam bagian Interface vs class, kita dapat benar-benar menggunakan interface sebagai tipe data.
Pada akhirnya, kita perlu menggunakan interface untuk pewarisan model jamak dimana
menyediakan class untuk mempunyai lebih dari satu superclass. Pewarisan jamak tidak
ditunjukkan di Java, tetapi ditunjukkan di bahasa berorientasi object lain seperti C++.
Interface vs. Class Abstract
Berikut ini adalah perbedaan utama antara sebuah interface dan sebuah class abstract:
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.
Interface vs. Class
Satu ciri umum dari sebuah interface dan class adalah pada tipe mereka berdua. Ini artinya bahwa sebuah interface dapat digunakan dalam tempat-tempat dimana sebuah class dapat digunakan. Sebagai contoh, diberikan class Person dan interface PersonInterface, berikut deklarasi yang benar:
--------------------------------------------------------
PersonInterface pi = new Person();
Person pc = new Person();
--------------------------------------------------------
Bagaimanapun, Anda tidak dapat membuat instance dari sebuah interface.
Contohnya:
---------------------------------------------------------
PersonInterface pi = new PersonInterface(); //COMPILE
//ERROR!!!
---------------------------------------------------------
Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method.
Bagaimanapun, sebuah interface tidak punya sebuah kode implementasi sedangkan class
memiliki salah satunya.
Membuat Interface
Untuk membuat interface, kita tulis,
--------------------------------------------------------
public interface [InterfaceName]
{
//beberapa method tanpa isi
}
--------------------------------------------------------
Sebagai contoh, mari kita membuat sebuah interface yang mendefinisikan hubungan antara
dua object menurut urutan asli dari object.
--------------------------------------------------------
public interface Relation
{
public boolean isGreater( Object a, Object b);
public boolean isLess( Object a, Object b);
public boolean isEqual( Object a, Object b);
}
--------------------------------------------------------
Sekarang, penggunaan interface, kita gunakan kata kunci implements. Contohnya,
---------------------------------------------------------
/**
* Class ini mendefinisikan segmen garis
*/
public class Line implements Relation
{
private double x1;
private double x2;
private double y1;
private double y2;
public Line(double x1, double x2, double y1, double y2){
this.x1 = x1;
this.x2 = x2;
this.y1 = y1;
this.y2 = y2;
}
public double getLength(){
double length = Math.sqrt((x2-x1)*(x2-x1) +
(y2-y1)* (y2-y1));
return length;
}
public boolean isGreater( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen > bLen);
}
public boolean isLess( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen < alen =" ((Line)a).getLength();" blen =" ((Line)b).getLength();" alen ="=" style="font-weight: bold;">Petunjuk penulisan program:
Gunakan interface untuk mendefinisikan method standar yang sama dalam class-
class berbeda yang memungkinkan. Sekali Anda telah membuat kumpulan definisi
method standar, Anda dapat menulis method tunggal untuk memanipulasi semua class-
class yang mengimplementasikan interface.
Hubungan dari Interface ke Class
Seperti yang telah kita lihat dalam bagian sebelumnya, class dapat mengimplementasikan
sebuah interface selama kode implementasi untuk semua method yang didefinisikan dalam
interface tersedia.
Hal lain yang perlu dicatat tentang hubungan antara interface ke class-class yaitu, class
hanya dapat mengEXTEND SATU superclass, tetapi dapat mengIMPLEMENTASIkan BANYAK
interface. Sebuah contoh dari sebuah class yang mengimplementasikan interface adalah,
---------------------------------------------------------
public class Person implements PersonInterface,
LivingThing,
WhateverInterface {
//beberapa kode di sini
}
Contoh lain dari class yang meng-extend satu superclass dan mengimplementasikan
sebuah interface adalah,
public class ComputerScienceStudent extends Student
implements PersonInterface,
LivingThing {
//beberapa kode di sini
}
---------------------------------------------------------
Catatan bahwa sebuah interface bukan bagian dari hirarki pewarisan class. Class yang tidak
berhubungan dapat mengimplementasikan interface yang sama.
Pewarisan Antar Interface
Interface bukan bagian dari hirarki class. Bagaimanapun, interface dapat mempunyai
hubungan pewarisan antara mereka sendiri. Contohnya, misal kita punya dua interface
StudentInterface dan PersonInterface. Jika StudentInterface meng-extend
PersonInterface, maka ia akan mewariskan semua deklarasi method dalam PersonInterface.
---------------------------------------------------------
public interface PersonInterface {
...
}
public interface StudentInterface extends PersonInterface {
...
}
izmir
BalasHapusErzurum
Diyarbakır
Tekirdağ
Ankara
8QJYVM
Aydın
BalasHapusElazığ
Osmaniye
izmir
Bingöl
AO5R
Eskişehir
BalasHapusDenizli
Malatya
Diyarbakır
Kocaeli
VAWRHV
sakarya
BalasHapusyalova
elazığ
van
kilis
MB1
adıyaman
BalasHapussakarya
yalova
tekirdağ
amasya
54O
whatsapp goruntulu show
BalasHapusshow
XB5EG
görüntülü show
BalasHapusücretlishow
52S5MW
ankara parça eşya taşıma
BalasHapustakipçi satın al
antalya rent a car
antalya rent a car
ankara parça eşya taşıma
ROU
Kırşehir Lojistik
BalasHapusHakkari Lojistik
Kars Lojistik
Konya Lojistik
Kilis Lojistik
T76
bartın evden eve nakliyat
BalasHapusedirne evden eve nakliyat
mersin evden eve nakliyat
sinop evden eve nakliyat
siirt evden eve nakliyat
R86
9556F
BalasHapusMuş Evden Eve Nakliyat
Bingöl Parça Eşya Taşıma
Kayseri Lojistik
Tekirdağ Lojistik
Burdur Parça Eşya Taşıma
8300B
BalasHapusOrdu Lojistik
Karabük Lojistik
Sivas Lojistik
Siirt Evden Eve Nakliyat
Artvin Evden Eve Nakliyat
FD139
BalasHapusKars Şehirler Arası Nakliyat
Aksaray Şehir İçi Nakliyat
Erzincan Şehir İçi Nakliyat
Huobi Güvenilir mi
Iğdır Şehirler Arası Nakliyat
Eskişehir Şehirler Arası Nakliyat
Kütahya Lojistik
Kırşehir Şehirler Arası Nakliyat
Ünye Koltuk Kaplama
4D5C7
BalasHapusCeek Coin Hangi Borsada
Aptos Coin Hangi Borsada
Ankara Evden Eve Nakliyat
Kars Şehirler Arası Nakliyat
Nexa Coin Hangi Borsada
Telcoin Coin Hangi Borsada
Bilecik Parça Eşya Taşıma
Çerkezköy Çelik Kapı
Ankara Asansör Tamiri
6BFC2
BalasHapusoxandrolone anavar
Coin Nedir
buy pharmacy steroids
testosterone enanthate
Zonguldak Evden Eve Nakliyat
Çerkezköy Evden Eve Nakliyat
boldenone
Amasya Evden Eve Nakliyat
order oxandrolone anavar
637A1
BalasHapus%20 referans kodu
96CE8
BalasHapusbinance komisyon indirimi
9705F
BalasHapusbinance kod
D71F0
BalasHapusrastgele sohbet
antep mobil sohbet chat
erzincan ücretsiz sohbet
Bartın Sesli Sohbet Siteler
ordu random görüntülü sohbet
karabük canlı görüntülü sohbet uygulamaları
Giresun Sesli Mobil Sohbet
hatay bedava sohbet uygulamaları
eskişehir random görüntülü sohbet
25F85
BalasHapusHozat
Bayramören
Çemişgezek
Pertek
Mazgirt
Kofçaz
Nazimiye
Yalıhüyük
İnhisar