Selasa, 01 November 2011

Pertemuan 5


ABSTRACT CLASS, INTERFACE, INNER CLASS

1.   Abstract Class

Bentuk Umum :
[modifier] abstract class NamaKelas){
// deklarasi attribute
// defenisi  / prototype method }

Metode ABSTRACT  yaitu suatu mekanisme yang memungkinkan suatu metode ditentukan dari dalam kelas tetapi tidak disertai defenisnya dan kelasnya disebut KELAS ABSTRACT.
ABSTRACT CLASS yaitu suatu kelas yang dinyatakna abstract, umumnya memiliki suatu atau lebih abstract method.
ABSTRAC T METHOD adalah metode yang memiliki implementasi dan menggunakan modifier abstract. Abstract class biasanya dijadikan parent dari kelas-kelas yang dapat membuat objek, abstract class tidak dapat diinstansi (tidak bias dibuat objek dari kela)
Defenisi kelas diletakkan dalam masing-masing kelas turunan dan harus mendefenisikan metode-metode yang tergolong sebagai metode abstract.

2.  INTERFACE

Bentuk Umum:
[modifier] Interface  NamaInterface {
// deklarasi konstanta
// deklarasi method
}

INTERFACE yaitu 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, bedanya kata kunci interface menggantikan kedudukan kata kunci kelas. Bentuk pendeklarasiannya :
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.

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.

Latihan :
A.       Abstract class

Abstract class memiliki suatu atau lebih abstract method,biasanya dijadikan kelas induk/super dari kelas-kelas yang membuat objek, dan tidak dapat diinstansiasi.


Program  MakhlukHidup.java

// Program ini bukan fungsi utama karena tidak memeliki public static void main(String [] args) {

public abstract class MakhlukHidup {

//kelas abstract dari kelas MaklukHidup

     protected boolean BisaTerbang = false;

// tipe data Boolean dengan atribut BisaTerbang  dan nilai false

     protected String Nama;

// tipe data String dengan atribut Nama 

     protected int JlhKaki;

// tipe data integer  dengan atribut JlhKaki



     public  MakhlukHidup(String  Nama1,  int  JlhKaki1,boolean

BisaTerbang1) {

//constructor MakhlukHidup

//method MakhlukHidup dengan tipe data String parameter Nama1,tipe data  integer parameter JlhKaki, tipe data Boolean parameter BisaTerbang1

     this.Nama = Nama1;

     // untuk mengeset atribut nama dengan nilai Nama1

     this.JlhKaki = JlhKaki1;

// untuk mengeset atribut JlhKaki dengan nilai Jlhkaki1

     this.BisaTerbang = BisaTerbang1;

     // untuk mengeset atribut BisaTerbang dengan nilai BisaTerbang1

     }

     abstract void bernafas();

     //memanggil abstract method bernafas dan tidak ada implementasi

     public void status() {

     //memanggil abstract method status dan tidak ada implementasi

           System.out.println("Nama : " +Nama);

           //memanggil atribut nama

           System.out.println("Jumlah kaki : " +JlhKaki);

           //memanggil atribut Jumlah kaki

           System.out.println("Bisa terbang : " +BisaTerbang);

          //memanggil atribut bisa terbang

}

}

Program Manusia.java
Ini adalah proram fungsi utama
public class Manusia extends MakhlukHidup {
//kelas Manusia adalah turunan dari kelasMakhlukHidup
     Manusia(String Nama) {
     // constructor Manusia
            // Method Manusia dengan tipe data String dan parameter Nama
           super(Nama,2, false);
           //memanggil kelas induk yaitu kelas MakhlukHidup dengan nama sayuti, jumlah kaki 2 dan bisaterbang false
}
public void bernafas() {
// memanggil method bernafas
     System.out.println(Nama+" bernafas dengan menghirup 02");
     //memanggil atribut nama dengn nilai bernafas denganmenghiup O2
}
public static void main(String [] args) {
//memnggil fungsi utama
     Manusia m = new Manusia ("Sayuti");
     //membuat objek baru dari kelas Manusia yaitu m = memanggil constructor Manusia
     m.status();
            //memanggil method status dari objek m dari kelas Manusia
     m.bernafas();
//memanggil method status dari objek m dari kelas Manusia
     }
}

Program Tumbuhan.java
public class Tumbuhan extends MakhlukHidup {
//kelas Tumbuhan  adalah turunan dari kelasMakhlukHidup
     Tumbuhan() {
// constructor Tumbuhan
            // Method Tumbuhan
           super(Nama,0, false);
           //memanggil kelas induk yaitu kelas MakhlukHidup dengan nama Bayam, jumlah kaki 0 dan bisaterbang  false
     }
     public void bernafas() {
            // memanggil method bernafas
           System.out.println(Nama+" bernafas dengan menghirup CO2");
//memanggil atribut nama dengn nilai bernafas denganmenghiup CO2
}
     public static void main(String [] args) {
//memnggil fungsi utama
           Tumbuhan t = new Tumbuhan ("Bayam");
//membuat objek baru dari kelas Tumbuhan yaitu t = memanggil constructor Tumbuhan
           t.status();
           //memanggil method status dari objek t dari kelas Tumbuhan
           t.bernafas();
     //memanggil method bernafas dari objek t dari kelas Tumbuhan
     }
}

Program Pekerjaan. java
interface Pekerjaan {
//interaface dengan nama pekerjaan
     public void namaPekerjaan();
            //method  pekerjaan dan tanpa implementasi
     public void gaji();
//method  gaji  dan tanpa implementasi
}

Program Sasya.java
public class Sasya extends Manusia implements Pekerjaan {
//kelas Sasya turunan kelas Manusia  tempat implementasi dari interface Pekerjaan
     public Sasya() {
            //memanggil method Sasya
            //memanggil constuktor Sasya
           super("Sasya");
           // memanggil constructor kelas induk dengan nama Sasya
     }
     public void namaPekerjaan () {
     //memanggil method namaPekerjaan dari kelas inteface  Pekerjeraan
           System.out.println("Pekerjaan :Sekretaris");
           //memanggil atribut Pekerjaan dengan nilai sekretaris
     }
     public void gaji() {
     // memanggil method gaji dari kelas interface Pekerjaan
           System.out.println("Gaji : Rp. 3.000.00");
//memanggil atribut gaji  dengan nilai Rp.3.000.000
     }
     public static void main(String[] args) {
     //fungsi utama
           Sasya s = new Sasya();
//membuat objek baru dari kelas Sasta yaitu s = memanggil constructor Sasya
           s.status();
           //memanggil method status dari objek s dari kelas Manusia
           s.bernafas();
           //memanggil method bernafas dari objek s dari kelas Manusia
           s.namaPekerjaan();
           //memanggil method namaPekerjaan dari objek s kelas inteface  Pekerjeraan
           s.gaji();
// memanggil method gaji dari objek s kelas interface Pekerjaan
     }
}


 
Program JantungManusia.java
class Orang {
// kelas orang
     private int jumlKaki=2;
     //tipe data integer atribut jumlKaki dengan nilai= 2
     public void dengarBunyiJantung() {
            // method dengarBunyiJantung
           Jantung j =new Jantung();
           //membuat objek baru dengan nama  j =memanggilconstruktor jantung
           j.bunyiJantung();
           //memanggil method BunyiJantung dari objek j kelas Orang
     }
     public void tahanNafas() {
     //method tahanNafas
           System.out.println("Jantung berhenti berdetak!");
     }

//inner class
class Jantung {
//kelas Jantung
     public void bunyiJantung() {
     //memanggil method bunyiJantung dari kelas Orang
           System.out.println("deg...deg...deg...");
     }
     public void istirahat() {
     //method istirahat
           System.out.println("Silangkan ke "+jumlKaki+" kaki.");
           tahanNafas();
     }
}
}
class JantungManusia {
//kelas JantungManusia
     public static void main(String[] args) {
     //fungsi utama
           Orang o = new Orang();
           //membuat  objek baru dengan nama o dari kelas Orang
           Orang.Jantung p = o.new Jantung();
           //membuat  objek baru dengan nama p  dari kelas Orang dan kelas Jantung
           o.dengarBunyiJantung();
//memanggil method dengarBunyiJantung dari  objek o dari kelas Orang dan kelas Jantung
p.istirahat();
//memanggil method istirahat dari p dari kelas Jantung
     }
}































 






























Tidak ada komentar:

Posting Komentar