Interface adalah jenis khusus dari blok
yang hanya berisi method signature (atau constant). Interface
mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa
tubuh. 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.
Untuk memahami lebih mudah, interface
sekumpula dari method-method yang dibuat tapi belum ada operasi di dalam
tubuh method tersebut, interface ini bisa diturunkan atau diwariskan
kepada class yang ingin memakai method yang ada dalam masing-masing
interface tersebut dengan keyword extends [interface yang didefinisikan]. Dan juga sebuah class mengimplementasi 1 interface yang sudah dibuat dengan keyword implements.
Ciri-ciri dari interface adalah sebagai berikut..
- 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.
- Tidak bisa membuat instance atau objek baru dari sebuah interface.
- Ciri umum lain adalah baik interface maupun class dapat
mendefinisikan method. Bagaimanapun, sebuah interface tidak punya sebuah
kode implementasi sedangkan class memiliki salah satunya.
1 | public interface [InterfaceName] |
Seperti penggunaan interface pada salah satu class interface berikut.
01 | public interface RemoteAllInOne { |
03 | public void pindahChannel( int channel); |
05 | public void perbesarVolume( int kpsts); |
07 | public void perkecilVolume( int kpsts); |
09 | public void perkecilZoom( int kpsts); |
11 | public void perbesarZoom( int kpsts); |
Setelah itu kita menggunakan class yang akan mengimplementasi setiap method yang ada pada class interface RemoteAllInOne.
01 | public class BenQ implements RemoteAllInOne { |
03 | String[] menuTV = { "ANTV" , "INDOSIAR" , "TRANS-TV" , "TPI" , "RCTI" , "SCTV" , "GLOBAL-TV" }; |
05 | public void pindahChannel( int channel) { |
06 | System.out.println( "LCD BENQ Pindah Channel ke - " + this .menuTV[channel]); |
09 | public void perbesarVolume( int kpsts) { |
10 | System.out.println( "LCD BENQ Perbesar Vol : " +kpsts); |
13 | public void perkecilVolume( int kpsts) { |
14 | System.out.println( "LCD BENQ Pekecil Vol : " + kpstss); |
17 | public void perkecilZoom( int kpsts) { |
18 | System.out.println( "LCD BENQ Pekecil Zoom : " + kpsts); |
21 | public void perbesarZoom( int kpsts) { |
22 | System.out.println( "LCD BENQ Pebesar Zoom : " + kpsts); |
Setelah itu kita membuat class yang berfungsi sebagai perantara
pemanggil method sebelum kita masuk ke class main, atau pembuatan
instance baru sebuah objek supaya dapat digunakan setiap interface yang
dibuat tadi.
01 | public class MyRemoteAllInOne { |
02 | public void sendRequest( int aksi, RemoteAllInOne rmt, int tombol){ |
05 | rmt.pindahChannel(tombol); |
08 | rmt.perkecilVolume(tombol); |
11 | rmt.perbesarVolume(tombol); |
14 | rmt.perkecilZoom(tombol); |
17 | rmt.perbesarZoom(tombol); |
Dan berikut adalah class main yang dipakai waktu pengeksekusian program.
04 | * @param args the command line arguments |
06 | public static void main(String[] args) { |
07 | Ephson ep = new Ephson(); |
09 | Mitshubishi mt = new Mitshubishi(); |
10 | MyRemoteAllInOne my = new MyRemoteAllInOne(); |
11 | my.sendRequest( 1 , mt, 4 ); |
12 | my.sendRequest( 1 , ep, 5 ); |
13 | my.sendRequest( 1 , bq, 6 ); |
14 | my.sendRequest( 2 , mt, 4 ); |
Tidak ada komentar:
Posting Komentar