◦
Adalah
semacam blok spesial yang hanya berisi tanda tangan method (dan mungkin
konstan).
◦
Menggambarkan
tandatangan dari seperangkat method, tanpa body
◦
Menggambarkan
cara standard dan publik penetapan behavior class
◦
Mengijinkan
class,dengan mengabaikan lokasi mereka di dalam hirarki class untuk menerapkan
behavior.
◦
CATATAN:
Interface memperlihatkan polymorphism juga, sejak program diperbolehkan
memanggil sebuah method interface, dan versi yang sesuai dari method tersebut
akan dieksekusi tergantung pada jenis object yang dilewatkan kepada pemanggilan
method interface
Mengapa
menggunakan interface?
◦
Untuk
memiliki class yang tidak berhubungan yang mengimplementasikan method yang
sama.
◦ Contoh:
Class
Line dan MyInteger
◦
Tidak
berhubungan
◦
Keduanya
mengimplementasikan method perbandingan
isGreater
isLess
isEqual
◦
Untuk
mengungkapkan sebuah interface pemrograman object tanpa pernyataan classnya
◦
Untuk
model multi inheritance yang mengijinkan sebuah class untuk memiliki lebih dari
satu superclass.
Membuat
interface
◦
Untuk
membuat sebuah interface, kita tulis:
public interface [InterfaceName] {
//beberapa method tanpa body
}
◦
Sebagai
contoh, mari buat sebuah interface yang mendefinisikan hubungan antara dua
object sesuai dengan pesanan 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);
}
◦
Untuk
menggunakan interface, kita gunakan keyword implements
◦
Sebagai
contoh,
/**
* Class ini menjelaskan segment
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 < bLen);
}
public boolean isEqual( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen == bLen);
}
}
◦
Ketika
class Anda mencoba untuk mengimplementasikan sebuah interface, pastikan selalu
bahwa Anda mengimplementasikan semua method dari interface tersebut, jika
tidak, Anda akan mendapatkan kesalahan ini.
Line.java:4: Line is not abstract and does not override abstract method
isGreater(java.lang.Object,java.lang.Object) in Relation
public class Line implements Relation
^
1 error
0 komentar:
Posting Komentar