Senin, 31 Oktober 2011
Pertemuan 6
ABSTRACT CLASS
Abstract Class adalah suatu kelas yang dinyatakan abstract, umumnya memiliki suatu atau lebih abstract method. Abstract Method adalah suatu method yang memiliki implementasi dan menggunakan modifier abstract. Abstract Class biasanya dijadikan parent/super class dari kelas-kelas yang dapat membuat object, abstract class tidak dapat diinstansiasikan.
INTERFACE
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. Interface menyerupai kelas. Perbedaannya, kata kunci interface menggantikan kedudukan kata kunci class.
Bentuk pendeklerasiannya adalah:
Penentu akses public biasa digunakan dengan tujuan agar interface dapat diakses oleh kelas manapun. Jika tidak ada penentu akses public, interface hanya dapat diakses oleh kelas-kelas yang berada dalam paket yang sama.
INNER CLASS
Inner Class adalah kelas yang disisipkan didalam 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.
Contoh:
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 = JlhKaki1;
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);
}
}
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();
}
}
Tumbuhan.java
public class Tumbuhan extends MakhlukHidup {
Tumbuhan() {
super (nama,0,false);
}
public void bernafas() {
System.out.println(nama+"bernafas dengan menghirup CO2");
}
public static void main (String [] args) {
Tumbuhan t = new Tumbuhan ("Bayam");
t.status();
t.bernafas();
}
}
Perkerjaan.java
interface Pekerjaan {
public void namaPerkerjaanf();
public void gaji();
}
Sasya.java
public class Sasya extends Manusia implements Pekerjaan {
pubic Sasya() {
super ("Sasya");
}
public void namaPerkerjaan() {
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();
}
}
JantungManusia.java
class Orang {
private int jumlKaki = 2;
public void dengarBunyiJantung() {
Jantung j = new Jantung();
j.BunyiJantung();
}
public void tanahNafas() {
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();
p.istirahat();
}
}
