.
Encapsulation
Maksud dari encapsulation adalah membungkus class dan menjaga apa apa
saja yang ada didalam class tersebut, baik method ataupun atribut, agar tidak
dapat di akses oleh class lainnya. Untuk menjaga hal tersebut dalam
Encapsulation dikenal nama Hak Akses Modifier yang terdiri dari :
a.
Private
= memberikan hak akses hanya pada class
itu sendiri, artinya apa-apa saja yang ada di dalam class A baik itu method ataupun
atribut hanya bisa diakses oleh class A saja, class lain tidak bisa
mengaksesnya.
b.
public =
memberikan hak akses kepada atribut atau method agar bisa diakses oleh siapapun
(property atau class lain diluar class yang bersangkutan), artinya method atau
atribut yang ada diclass A dapat diakses oleh siapaun baik itu class A, class B
dan seterusnya.
c.
protected =
memberikan hak akses kepada class itu sendiri dan class hasil turunannya
(inheritance), artinya apa apa saja yang ada diclass A hanya bisa diakses oleh
class A sendiri dan class yang meng Extends class A. Namun harus dipahami class
lain yang berada dalam satu package dengan class A mampu mengakses tipe data
protected, Sedangkan yang tidak mampu mengakses adalah class-class yang berada
diluar package class A. untuk dapat mengaksesnya, class yang berada diluar
package class A harus meng extends class A.
2.
Inheritance
Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana
sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada
class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’
untuk menghindari duplikasi kode program.
Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam
kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk
(parent class), super class, atau base class. Sedangkan class yang ‘menerima
penurunan’ bisa disebut sebagai class anak (child class), sub class, derived
class atauheir class.
Tidak semua property dan method dari class induk akan diturunkan.
Property dan method dengan hak akses private, tidak akan diturunkan kepada
class anak. Hanya property dan method dengan hak akses protected dan public
saja yang bisa diakses dari class anak.
3.
Polymorphysm
Polymorphism adalah 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 Encapsulation dan Inheritance:
Contoh
programnya seperti berikut, kita buat 2 package bernama a dan b. Dalam package
a buat 2 class :
-
Bapak.java
package
a;
public
class Bapak {
private String nama = "Bapak";
private String alamat = "Sleman";
public String getNama() {
return nama;
}
private String getNamaPrivate(){
return nama;
}
protected String getAlamat(){
return alamat;
}
}
-
Anak.java
package
a;
public
class Anak extends Bapak{
public String getNamaPublic(){
return super.getNama();
}
//
public String getNamaPrivate(){
// return super.getNamaPrivate();
// INI AKAN ERROR karena hak akses di
parent class untuk method ini private
// }
@Override
public String getAlamat(){
return super.getAlamat();
}
public static void main(String args[]) {
Anak g = new Anak();
System.out.println("dari method
public : " + g.getNamaPublic());
System.out.println("dari method
protected : " + g.getAlamat());
}
}
Class ini berusaha mengakses method private milik Bapak.java. Walaupun
sudah meng extends Bapak tapi karena menggunakan modifier private, siapapun
tidak bisa mengaksesnya.
Contoh program polymorphism :
jika method yang digunakan pada
child class sama dengan parent classnya, maka hal itu harus di override.
package override;
class Animal{
protected void
hello(){
System.out.println("Hello");
}
protected void move(){
System.out.println("Animals can
move");
}
}
class Dog extends
Animal{
@Override
public void move(){
System.out.println("Dogs can walk
and run"); }
// method tambahan untuk analisa
public void bark(){
System.out.println("Dogs can
bark");
}
}
public class
Override_Test{
public static void main(String args[]){
Animal a = new Animal(); // Animal
reference and object
Animal b = new Dog(); // Animal reference
but Dog object
a.move();
b.move();
System.out.println();
a.hello();
}
}
ConversionConversion EmoticonEmoticon