ABSTRACT CLASS,INTERFACE CLASS,INNER CLASS
ABSTRACT CLASS
Abstract class adalah suatu yang dinyatakan abstract, umumnya memiliki satu atau lebih abstract method.Abstract method adalah suatu method yang belum memilki implementasi dan menggunakan modifier abstract.Abstract class biasanya dijadikan parent/super class dari kelas-kelas yang dapat dibuat objek,abstract class tidak dapat diinstansiasi.
Analogi Inheritance dan abstract class:
Inheritance dapat dianalogikan seperti penggolongan kelas ordo,phylum dalam biologi.
kita mengetahui bahwa suatu kelas dapat di instansiasi menjadi suatu objek,misal kelas manusia dapat diinstansiasi menjadi joko,susi,ari,ria dll,namun kita tidak mungkin dapat menginstansiasi kelas makhluk hidup,maupun kelas hewan sebab kelas tersebut terlalu umum(abstract),kelas seperti inilah yang disebut sebagai abstract class.Apabila kelas makhluk hidup mempunyai method bernafas,maka kita tidak dapat mementukan(mengimplementasikan)cara makhluk hidup tersebut bernafas,dengan paru-paru,Insang atau stomata dengan kita dapat menyatakan bahwa didalam kelas makhluk hidup,bernafas merupakan method yang abstract.
INTERFACE CLASS
Interface adalah suatu kelas yang berisi method-method tanpa implementasi namun tanpa modifier abstract,apabila suatu interface memiliki atribut,maka atributnya akan berlaku sebagai konstanta(Static final).
· Interface berbeda dengan class
· Interface berisi method kosong dan konstanta
· Method dalam Interface tidak memiliki statement
· Satu class boleh mengimplementasikan lebih dari satu Interface.
· Suatu interface boleh mengextends(mewariskan) lebih dari satu interface.
Analogi Interface:
Interface dapat dianalogikan sebagai kontrak yang dapat dipakai oleh setiap kelas.
Dalam kehidupan nyata kita mengetahui bahwa ada manusia yang bekerja sebagai penyanyi,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 penyanyi kita harus membuat kelas yang merupakan turunan kelas manusia yang mengimplementasikan interface penyanyi.
INNER CLASS
Inner Class Merupakan 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 utamanya,seperti halnya blok penyeleksian(if,or) yang tersarang pada blok penyeleksian lainnya atau method yang tersarang pada method yang tersarang pada method lainnya.
Analogi Inner Class:
Inner class dianalogikan sebagai hubungan antara manusia dan paru-paru.Setiap manusia pasti bernafas dengan menggunakan paru-paru.Dalam hal ini berarti kinerja dari paru-paru turut mendukung/menentukan kinerja dari manusia.Dalam bahasa pemrograman berorientasi objek manusia dapat dikatakan sebagai outer class dan paru-paru sebagai inner classnya.
Contoh:
1. Membuat program makhlukhidup.java,manusia.java dan tumbuhan.java
Source Code makhlukhidup.Java
public abstract class makhlukhidup { //dinyatakan sebagai kelas abstrak
protected String nama; //nama atribut yang bernama: nama
protected int jumlkaki; //nama atribut yang bernama:jumlkaki
protected boolean bisaterbang; //nama atribut yang bernama:bisaterbang
public makhlukhidup(String nama, int jumlkaki,
boolean bisaterbang){
this.nama=nama; //berikan nilai ke atribut nama yang nilainya=nama
this.jumlkaki=jumlkaki; //berikan nilai ke atribut nama yang nilainya=jumlkaki
this.bisaterbang=bisaterbang; //berikan nilai ke atribut nama yang nilainya=bisaterbang
}
abstract void bernafas(); //method abstract yang tidak memiliki implementasi
public void status(){
System.out.println("nama :"+nama);
System.out.println("jumlahkaki: "+jumlkaki);
System.out.println("bisa terbang? "+bisaterbang);
}
}
ada 3 method yang terdapat di kelas makhlukhidup yaitu:
method makhlukhidup,bernafas,status.
- Simpan dengan nama makhlukhidup.java
Tekan Ctrl+1 untuk mengkompile
- Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:
Source Code manusia.java
kelas manusia merupakan kelas turunan dari kelas makhlukhidup
public class manusia extends makhlukhidup{
manusia(String nama){
super(nama, 2, false); //memanggil konstruktor ke kelas induk
}
public void bernafas(){ //implementasi method bernafas
System.out.println(nama+" bernafas dengan menghirup O2");
}
public static void main(String[] args){
manusia m=new manusia("Sayuti");
m.status(); //m merupakan object dari manusia
m.bernafas();
}
}
- Simpan dengan nama manusia.java
Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:
- Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:
Source Code tumbuhan.java
public class tumbuhan extends makhlukhidup{
tumbuhan(String nama){
super(nama, 0, false);
}
public void bernafas(){
System.out.println(nama+" bernafas dengan menghirup CO2");
}
public static void main(String[] args){
tumbuhan m=new tumbuhan("Bayam");
m.status();
m.bernafas();
}
}
- Simpan dengan nama tumbuhan.java
Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:
- Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:
2. Membuat program pekerjaan.java dan sasya.java
Source Code pekerjaan.java
pekerjaan merupakan interface:kelas yang memiliki method-method harus tanpa implementasi
interface pekerjaan{
public void namapekerjaan(); //memiliki 2 method
public void gaji();
}
- Simpan dengan nama pekerjaan.java
Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:
- Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:
Source Code sasya.java //merupakan turunan dari manusia dan implementasi dari pekerjaan
public class sasya extends manusia implements pekerjaan{
public sasya(){
super("sasya");
}
//mengimplementasikan method milik interface
public void namapekerjaan(){ //merupakan implementasi
System.out.println(" pekerjaan:sekretaris");
}
//mengimplementasikan method milik interface
public void gaji(){
System.out.println("gaji:Rp.3000.000,-");
}
public static void main(String[] args){
sasya s=new sasya();
s.status();
s.bernafas();
s.namapekerjaan();
s.gaji();
}
}
- Simpan dengan nama sasya.java
Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:
- Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:
Source Code 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("silakan ke "+jumlkaki+"kaki.");
tahannafas();
}
}
}













Tidak ada komentar:
Posting Komentar