1.
Abstract
Class
Abstract class adalah suatu class yang
dinyatakan abstract, umumnya memiliki satu atau abstract method, abstract
method adalah suatu method yang belum memiliki implementasi dan menggunakan
modifier abstract. Abstract class biasanya dijadikan parent atau super class
dari kelas – kelas yang dapat membuat objek, abstract class tidak dapat
diinstanisasi.
Analogi
Inheritance dan Abstract Class :
Inheritence dapat dianalogikan seperti
penggolongan kelas, ordo, phylum dalam biologi. Makhluk hidup dapat diturunkan
atau diextend atau diperluas (di-inherit) menjadi burung, reptile, ikan dan
lain – lain, jenjang penurunan tersebut disebut inheritance.
Kita mengetahui bahwa suatu kelas dapat
diinstanisasi menjadi suatu objek, misal kelas manusia dapat diinstanisasi
menjadi Joko, Susi, Ari, dan lain – lain, namun kita tidak mungkin dapat
menginstanisasi kelas makhluk hidup, maupun kelas hewan, sebab kelas tersebut
terlalu umum (abstract), kelas seperti inilah yang desebut sebagai abstract
class, apabila class makhluk hidup mempunyai method bernafas, maka kita tidak
dapat menentukan (meng-implementasikan) cara makhluk hidup tersebut bernafas,
dengan paru – paru, insang atau stomata, dengan demikian kita dapat menyatakan
bahwa di dalam kelas makhluk hidup, bernafas merupakan method yang abstract.
2.
Interface
Interface adalah suatu class yang berisi
method – method tanpa imlementasi, namun tanpa modifier abstract, apabila suatu
interface memiliki atribut, maka atributnya akan berlaku sebagai konstanta
(static final).
Analogi
Interface
Interface dapat dianaligikan sebagai kontrak
yang dapat dipakai oleh setiap kelas. Dalam kehidupan nyata kita mengetahui
bahwa ada yang bekerja sebagai penyayi, pengacara, pelawak, dsb, tentunya
manusia –manusia tersebut selain harus memiliki method standar seorang manusia,
juga harus memiliki method yang sesuai dengan pekerjaannya. Dengan demikian
untuk membuat seorang objek Joko penyayi kita harus membuat kelas yang
merupakan turunan kelas manusia yang mengimplementasikan interface penyayi.
3.
Inner Class
Inner Class adalah kelas yang disisipkan di
dalam kelas yang lain. Fungsi kelas sisipan ini adalah mendukung suatu proses
yang akan dijalankan oleh kelas utamanya. Inner Class bersifat tersarang
terhadap kelas – kelas utamanya, seperti halnya blok penyeleksian (if,
for) yang tersarang pada blok penyeleksian lainnya atau method yang tersarang
pada method lainnya.
Analogi
Inner Class
Inner Class dapat dianalogikan sebagi hubungan
antara manusia dan paru – paru. Setipa manusia pasti bernafas dengan
menggunakan paru – paru. Dalam hal ini berarti kinerja dari paru – paru turut
mendukung/menetukan kinerja dari manusia. Dalam bahasa pemrograman berorientasi
objek manusia dapat dikatakan sebagai outer class dan paru – paru sebagai inner
class-nya.
LANGKAH - LANGKAH PRAKTIKUM
A. MEMBUAT PROGRAM MakhlukHidup.java
public abstract class
MakhlukHidup {
protected boolean BisaTerbang = false;
protected String Nama;
protected int JlhKaki;
public MakhlukHidup(String Nama1, int JlhKaki,boolean
BisaTerbang1) {
this.Nama = Nama1;
this.JlhKaki = JlhKaki;
this.BisaTerbang = BisaTerbang1;
}
abstract void bernafas();
public void status() {
System.out.println("Nama : "
+Nama);
System.out.println("Jumlah Kaki : "
+JlhKaki);
System.out.println("Bisa terbang :
" +BisaTerbang);
}
}
B. MEMBUAT PROGRAM Manusia.java
public class Manusia extends MakhlukHidup {
Manusia
(String nama) {
super
(nama, 2, false);
}
public
void bernafas() {
System.out.println(Nama+
" bernafas dengan menghirup O2");
}
public
static void main (String [] args) {
Manusia
m = new Manusia ("Sayuti");
m.status();
m.bernafas();
}
}
C. MEMBUAT PROGRAM Tumbuhan.java
public class Tumbuhan extends MakhlukHidup {
Tumbuhan(String
nama) {
super
(nama, 0, false);
}
public
void bernafas() {
System.out.println(Nama+
"bernafas dengan mengirup CO2");
}
public
static void main(String [] args) {
Tumbuhan
t = new Tumbuhan("Bayam");
t.status();
t.bernafas();
}
}
D. MEMBUAT PROGRAM
Pekerjaan.java
interface Pekerjaan {
public
void namaPekerjaan();
public
void gaji();
}
E. MEMBUAT PROGRAM
Sasya.java
public class Sasya extends Manusia implements
Pekerjaan {
public
Sasya() {
super
("Sasya");
}
public
void namaPekerjaan() {
System.out.println("Pekerjaan
: Sekretaris");
}
public
void gaji() {
System.out.println("Gaji
: Rp. 3.000.000");
}
public
static void main(String[] args) {
Sasya
s = new Sasya();
s.status();
s.bernafas();
s.namaPekerjaan();
s.gaji();
}
}
F. MEMBUAT PROGRAM
JantungManusia.java
class Orang {
private
int jumlKaki = 2;
public
void dengarBunyiJantung() {
Jantung
j = new Jantung();
j.bunyiJantung();
}
public
void tahanNafas() {
System.out.println("Jantung
berhenti berdetak!");
}
//inner
class
class
Jantung {
public
void bunyiJantung() {
System.out.println("deg...deg...deg...");
}
public
void istirahat() {
System.out.println("Silangkan
ke "+jumlKaki+" kaki.");
tahanNafas();
}
}
}
class JantungManusia {
public
static void main(String[] args) {
Orang
o = new Orang();
Orang.Jantung
p = o.new Jantung();
o.dengarBunyiJantung();
}
}
Tidak ada komentar:
Posting Komentar