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:\>
- Overloading
Overloading
adalah method dengan nama yang sama dengan method lain pada
suatu class tetapi dengan parameter yang berbeda.
Tujuan dibuatnya overloading yaitu memudahkan penggunaan method dengan fungsi
yang hampir sama.
Berikut Contoh dari Overloading pada java.
class Pertambahan{
public void tambah1(){
int a=5, b=10;
System.out.println("Hasil Pertambahann dari metod tambah1 ke-1 = "+(a+b));
}
//Metod tambah1 di overloading dengan 2 parameter (int x, int y)
public void tambah1(int x, int y){
System.out.println("Hasil Pertambahann dari metod tambah1 ke-2 = "+(x+y));
}
public static void main(String [] args){
Pertambahan pp;
pp = new Pertambahan();
pp.tambah1();//memanggil metod tambah1 ke-1
pp.tambah1(5,5);//memanggil metod tambah1 ke-2
}
}
public void tambah1(){
int a=5, b=10;
System.out.println("Hasil Pertambahann dari metod tambah1 ke-1 = "+(a+b));
}
//Metod tambah1 di overloading dengan 2 parameter (int x, int y)
public void tambah1(int x, int y){
System.out.println("Hasil Pertambahann dari metod tambah1 ke-2 = "+(x+y));
}
public static void main(String [] args){
Pertambahan pp;
pp = new Pertambahan();
pp.tambah1();//memanggil metod tambah1 ke-1
pp.tambah1(5,5);//memanggil metod tambah1 ke-2
}
}
Dari contoh
di atas, method tambah1 pada class Pertambahan dioverloading, sehingga ada
perbedaan parameter antara metod tambah1() dengan metod tambah1(int
x, int y).
0 komentar:
Posting Komentar