Senin, 31 Oktober 2011

laporan java pertemuan 5

Nama  : Martha Natalina Damanik
Kelas : MI 92
Pertemuan 5
Abstract Class, Interface, Inner Class
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
     }
}
Hasil output program 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
     }
}

B.     Interface
Adalah suatu kelas yang berisi method-method tanpa implementasi, tanpa modifier abstract jika ada atribut maka berlaku sebagai konstata.
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
     }
}






Hasil output program Sasya


C.  Inner class
Adalah kelas yang disisipkan did lam kelas yang lain, fungsi untuk mendukung suatu proses yang akan dijalankan oleh kelas utamanya, dan bersifat tersarang dari kelas utamanya.

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
     }
}
Hasil output JantungManusia

Tidak ada komentar:

Posting Komentar