Kamis, 27 Oktober 2011

PERTEMUAN V




A. ABSTRACT CLASS
Java menyediakan suatu mekanisme yang memungkinkan suatu metode ditentukan dari dalam kelas tetapi tidak di sertai defenisinya. Metode inidikenal dengan nama metode abstract, sedangkan kelasnya dinamakan kelas abstract.
Abtract 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 objek, abstract class tidak dapat diinstansiasi.
Definisi class diletakkan dalam masing-masing kelas turunan. Dalam hal ini setiap class turunan harusmendefenisikan metode-metode yang tergolong sebagai metode abstract.
Kegunaan  abstract class adalah untuk mendaklarasikan karakteristic umum dari class.

B.  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 pendeklarasianya adalah sebagai berikut:
Penentu akses public biasa digunakan dengan tujuan agar interface dapat diakses oleh class manapun. Jika tidak ada penentu akses public, interface hanya dapat diakses oleh kelas-kelas yang berada dalam paket yang sama.
 
C.  INNER CLASS
Inner class adalah kelas yang disisipkan di dalam kelas lain. Fungsi kelas sisipan ini adalah mendukung suatu proses yang dijalankan oleh kelas utamanya. Inner class bersifat tersarang terhadap kelas-kelas utamanya.


Beberapa contoh program :

1.     Program MakhlukHidup.java
public abstract class MakhlukHidup {
   protected boolean BisaTerbang = false;
   protected String Nama;
   protected int JLHKaki;

   public MakhlukHidup(String Nama1, int JLHKaki1,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);
   }
 }

Hasilnya :
2.     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();
   }
 }


Hasilnya : 

3.     Program 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 t= new Tumbuhan("Bayam");

      t.status();

      t.bernafas();

   }

}



Hasilnya :
 
4.              Program Pekerjaan.java
interface Pekerjaan {
   public void namaPekerjaan();
   public void gaji();
}
Hasilnya : 
 
5.     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("PGaji : Rp. 3.000.000");
   }

   public static void main(String[] args) {
      Sasya s= new Sasya ();
      s.status();
      s.bernafas();
      s.namaPekerjaan();
      s.gaji();
   }
}

Hasilnya :