INHERITANCE
Salah
satu konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance,
berikut ini sedikit gambaran tentang inheritance. Pada dasarnya, kita melakukan
inheritance (pewarisan)
untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki
sifat atau spesifikasi dari superclass. Di dalam Java untuk
mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan
kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama
parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa
kita ingin melakukan perluasan class.
Contoh implementasi inheritance :
public class Pegawai {
public String nama;
public double gaji;
}
public class Manajer extends Pegawai {
public String departemen;
}
Pada saat class Manajer menurunkan atau memperluas (extend) class Pegawai, maka ia mewarisi data member yang dipunyai oleh class Pegawai. Dengan demikian, class Manajer mempunyai data member yang diwarisi oleh Pegawai (nama, gaji), ditambah dengan data member yang ia punyai (departemen).
Beberapa aturan tentang pewarisan (inheritance) yang perlu diperhatikan:
1. Java hanya
memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan
suatu sublass mempunyai satu parent class. Dengan konsep single inheritance
ini, masalah pewarisanakan dapat diamati dengan mudah.
2. Subclass juga
merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass
ini. Misal : class B merupakan subclass dari
class A, kita dapat membuat class baru yang diturunkan dari class B sehingga
class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
3. Suatu parent class dapat tidak mewariskan
sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat
diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain,
sangat berhubungan dengan access control (kontrol pengaksesan).
Polymorphisme
Polymorphism, suatu aksi yang memungkinkan
pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana
obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai
dengan sifat masing-masing obyek. Atau Polymorphic dapat berarti banyak bentuk,
maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari
parent class (super class) dimana object tersebut diturunkan, sehingga memiliki
kelakuan yang berbeda.
Overloading Merupakan Suatu Function yang memiliki parameter , dan
function tersebut dapat memiliki nama function yang sama dengan yang lainnya
dengan syarat jumlah parameter mesti berbeda atau bisa kita bilang Situasi di
mana beberapa rutin dalam sebuah program dapat mempunyai nama sama tetapi
berbeda jenis parameter dan/utau jenis return value.
lebih Jelasnya Overloading secara singkat :
·
Nama Method Boleh Sama , Tapi
Jumlah Parameter Mesti berbeda
·
Nilai Yang Di Return Harus
memiliki Tipe yang sama
Aturan penggunaan
Overloading
·
Method yang
overload harus merubah argument list.
·
Method yang
overload boleh merubah return type
·
Method yang
overload boleh merubah acces modifier
·
Method yang
overload boleh melempar check exception yang lebih luas / baru sama sekali dari
method yang dioverload
·
Suatu method
dapat dioverload diclass tersebut atau di subclassnya
Overriding Merupakan Suatu Keadaan Dimana kelas anak dapat mengubah
atau bisa kita bilang memodifikasi atau memperluas data dan method pada kelas
induk keuntungan Overriding dapat
menambahkan sifat / atribut pada kelas induknya .
·
Dengan
overriding, kita dapat memiliki pengenal method yang sama persis dengan dengan pengenal method yang ada di super class,
tapi berbeda behavior.
·
Constructor tidak dapat
dioverriding. Sebab
constructor tidak diturunkan ke subclassnya.
Enkapsulasi
Enkapsulasi adalah pembungkus,
pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak
dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep
enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat
diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Dalam kehidupan sehari hari
enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem
perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak
mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya.
Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana
kinerja sistem perputaran generator, apakah generator berputar kebelakang atau
ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator,
kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.
Begitulah konsep kerja dari
enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi
dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program
yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Contoh pemanfaatan Enkapsulasi
Belajar.Java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}}
Pemanfaatan kata
kunci super pada encapsulasi
Penggunaan kata kunci super
berhubungan dengan pewarisan. Super digunakan untuk meminta contrultor
superclass. Super juga dapat digunakan
seperti kata kunci this untuk menunjuk anggota
dari supeclass.
Contoh program
kata kunci kelas untuk memenggil
construktor superclass.
Class Person{
String firstName;
String lastName;
Person(String fname,
String iname){
firstName=fname;
lastName=iname;
}}
Class Student extends Person{
String studNum;
Student(String fname,
String iname, String sNum){
Super(fname,iname);
studNum-sNum;
}}
Tidak ada komentar:
Posting Komentar