Minggu, 06 November 2011

Praktek IV

ABSTRACT CLASS, INTERFACE, INNER CLASS

1. ABSTRACT CLASS
 
         Abstract class adalah kelas yang terletak pada posisi tertinggi pada hierarki kelas. Kelas ini digunakan sebagai basis bagi penurunan kelas lainnya, sehingga abstract class tidak dapat diinstansiasi secara langsung menjadi object. Suatu abstract class bisa mengandung method kongkrit dan/atau method abstract. Abstract method meruapakan suatu method yang tidak mempunyai badan method. Hanya berupa nama method dan parameter inputan method. Ketika suatu abstract class diturunkan/ di-extends, maka subclass harus mengimplementasikan semua method abstract pada parent/ base class. Jika tidak mengimplementasikan semua method abstract maka subclass harus dideklarasikan sebagai abstract class.


2.  INTERFACE

         Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya. Sedangkan detail dari method berada pada class yang mengimplementasikan interface tersebut. Interface digunakan bila Anda ingin mengaplikasikan suatu method yang spesifik, yang tidak diperoleh dari proses inheritance. Tipe data yang boleh pada interface hanya tipe data konstan. Setelah mengetahui apa itu interface. Timbul pertanyaan Mengapa membutuhkan interface?
  • Memecahkan bagian yang rumit dan spesifik. Dengan menggunakan class atau interface oleh vendor maka dalam pembuatan perangkat lunak menjadi lebih cepat.
  • Keterbatasan inheritance pada Java. Interface menjawab kebutuhan untuk melakukan multiple inheritance 

 NB:
Apakah Interface = Abstract class ?


Ya menurut saya sih antara keduanya memiliki kemiripan, tapi tidak sama. Mirip bukan berarti sama kan? Terdapat beberapa perbedaan antara keduanya yaitu :
  • Abstract class dapat memiliki tipe data dengan semua tipe data, sedangkan interface tipe datanya hanya berupa konstanta
  • Method pada abstract class dapat berupa method kongkrit dan method abstract. Sedangkan pada interface semua method harus berupa method abstract.


3.  INNER CLASS

         Inner Class adalah suatu Class yang didefinisikan di dalam Class lain. Dengan kata lain, Inner Class adalah anggota (member) dari Class lain, sama halnya seperti variable dan method. Hal ini mengakibatkan instance dari Inner Class dapat mengakses /berbagi dengan instance dari outer Class-nya. Instance dari Inner Class dapat mengakses semua member dari outer Class-nya, bahkan yang private.




contoh dari Abstract class, interface, inner class :


A.  Membuat 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);
  }
 }


B. Membuat Program Manusia.java
 
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 ("Eka Angelina");
                                m.status ();
                                m.bernafas ();
                }
 }

Hasilnya 



C. Membuat Progeam 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


D.  Membuat Program Pekerjaan.java


interface Pekerjaan {
                public void namapekerjaan ();
                public void gaji();
}

E.  Membuat Program Saya.java
 
public class Saya extends Manusia implements Pekerjaan {
                 public Saya () {
                                                super ("Saya");
                                }
                                                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) {
                                                                                Saya s =new Saya ();
                                                                                s.status();
                                                                                s.bernafas();
                                                                                s.namapekerjaan();
                                                                                s.gaji();
                                }
}

Hasilnya

  F. Membuat Program JantungManusia.java

public class Orang {

                private int jumlahkaki=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...deg....");

                }

                public void istirahat () {
                                System.out.println ("Silangkan ke "+jumlahkaki+" kaki.");
                                tahanNafas();
}
}

}


public class JantungManusia{
                public static void main (String[]args) {
                                Orang o=new Orang();
                                Orang.Jantung p= o.new Jantung();
                                o.dengarBunyiJantung();
                                p.istirahat();
                }
}


Hasilnya



 





Tidak ada komentar:

Posting Komentar