Inherentance
Inheritanceatau pewarisan pada pemrograman berorientasi objek merupakan
suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki
atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode
tambahan yang merupakan sifat khusus kelas yang menjadi turunannya. Sebagai
contoh, misalkan ada sebuah kelas Titik yang mempunyai kelas turunan Titik3D:
class
Titik
private integer x
private integer y
Titik()
x < 0
y < 0
{end Titik}
public getX() -> integer
-> x
{end getX}
public getY() -> integer
-> y
{end getY}
{end class}
class Titik3D: Titik
private integer z
Titik3D()
z <- 0
{end Titik3D}
public getZ() -> integer
-> z
{end getZ}
{end class}
Keterkaitan antara kelas Titik dan
Titik3D adalah kelas Titik3D merupakan kelas turunan dari kelas Titik. Dalam
hal ini kelas Titik disebut dengan kelas dasar atau super classatau base
classsedangkan kelas Titik3D disebut sebagai kelas turunan atau derived
classatau subclass.
Pada contoh di atas, ketika kelas
Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada
pada kelas Titik walau pada kode programnya metode itu tidak dituliskan,
misalkan sebagai berikut:
Titik3D p <- new Titik3D()
integer x <- p.getX()
integer y <- p.getY()
integer z <- p.getZ()
Keuntungan dari pewarisan adalah
tidak perlu mengutak atik kode kelas yang membutuhkan tambahan atribut atau
metode saja, karena tinggal membuat kelas turunannya tanpa harus mengubah kode
kelas dasarnya. Kelas dasar akan mewariskan semua atribut dan kodenya kecuali
konstruktor dan destruktor yang memiliki izin akses publicdan protectedke
kelas turunannya dengan izin akses yang sama dengan pada kelas dasar.
Ketika sebuah kelas turunan dibuat
objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil
terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga
saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan
baru kemudian destruktor kelas dasar dijalankan.
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 dalam program :
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);
}}
Tipe public dan private
mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class
Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class
Belajar. Sedangkan variable y yang menggunakan fungsi private
tidak dapat dipanggil didalam class Belajar.
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.
Contoh program java nya :
Simpan dengan nama BeautyfullMahasiswa.java
public class BeautyfullMahasiswa
extends Mahasiswa{
public void printNama(){
System.out.println(“Hallo, saya
Mahasiswa yg cantik n baik”);
Super.printNama();
}
}
Simpan dengan nama Main.java
public class Main{
public static void main(String[]
args]) {
BeautyfullMahasiswa mhs = new
BeautyfullMahasiswa();
mhs.setNim(“09530524”);
mhs.setNama(“Afrida Asna”);
mhs.printNim();
mhs.printNama();
}
}
Kemudian compile dan run.
C:\>javac
BeautyfullMahasiswa.java
C:\>javac Main.java
C:\>java Main
Kontruksi objek mahasiswa
Nim:09530524
Hallo, saya Mahasiswa yg
cantik n baik
Nama: Afrida Asna
C:\>
Terlihat bahwa disini kita
mengoverride method printNama(), dengan menambahkan beberapa teks tambahan,
sehingga method printNama(), pada class BeautyfullMahasiswa, memiliki perilaku
yang
berbeda
dengan class Mahasiswa.
Tidak ada komentar:
Posting Komentar