1 / 19

PBO Lanjutan

PBO Lanjutan. Kelas (Lanjutan). Composition. Suatu class yang mempunyai field (instance variable) yang merupakan referensi obyek dari class yang lain

lark
Download Presentation

PBO Lanjutan

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PBO Lanjutan Kelas (Lanjutan)

  2. Composition • Suatu class yang mempunyai field (instance variable) yang merupakan referensi obyek dari class yang lain • Contoh : ada class Penduduk yang terdiri dari Nama dan Almt. Field Almt bisa saja merupakan referensi obyek dari class yang lain, yaitu Alamat yang berisi NamaJalan, Rt, Rw dan NoRumah

  3. Contoh Program class Alamat { private String NamaJalan; private String Rt; private String Rw; private String NoRumah; public Alamat(String w, String x, String y, String z) { NamaJalan =w; Rt=x; Rw=y; NoRumah=z; }

  4. public String TampilAlamat() { return NamaJalan + " Rt." + Rt + " Rw." + Rw + " No." + NoRumah; } } //akhir dari class Alamat class Penduduk { private String Nama; private Alamat Almt; public Penduduk(String x, Alamat y) { Nama =x; Almt =y;} public String TampilOrang() { return Nama + "\nAlamatnya : "+Almt.TampilAlamat(); } } //Akhir dari class Penduduk

  5. public class kompos1 { public static void main(String args[]) { Alamat a = new Alamat("Petukangan","004","016","30"); Penduduk p1 = new Penduduk("Safrina", a); System.out.println(p1.TampilOrang()); } } Hasilnya:

  6. Garbage Collector • Mengembalikan memory ke system • Java melakukan hal ini secara otomatis • Obyek bisa ditandai untuk garbage collection jika sudah tidak ada referensi ke obyek tersebut • Ada method ‘finalize’ yang dijalankan sebelum garbage collector • Methode finalize bersifat void dan tidak memerlukan parameter

  7. class kursi { private int tinggi; private String warna; private static int jum_kursi; public kursi(int x, String y) { tinggi=x; warna=y; jum_kursi=jum_kursi+1; System.out.println("konstruktor kursi dijalankan..."); } public String getWarna() { return warna; }

  8. public int getTinggi() { return tinggi; } public int getJum_kursi() { return jum_kursi; } protected void finalize() { jum_kursi=jum_kursi-1; System.out.println("Finalize dijalankan, jumlah obyek kursi skrg : “ +jum_kursi); } }

  9. public class garbage1 { public static void main(String args[]) { kursi k1 = new kursi(5,"Hijau"); kursi k2 = new kursi(10,"Merah"); System.out.println("Warna kursi : "+k1.getWarna()); System.out.println("Tinggi kursi : "+k1.getTinggi()); System.out.println("Jumlah kursi : "+k1.getJum_kursi()); System.out.println("Warna kursi : "+k2.getWarna()); System.out.println("Tinggi kursi : "+k2.getTinggi()); System.out.println("Jumlah kursi : "+k2.getJum_kursi()); k1=null; System.gc(); System.out.println("Jumlah kursi stlh gc : "+k2.getJum_kursi()); } }

  10. Hasilnya :

  11. Static Class Member • Menggunakan keyword ‘static’ • Merupakan class variable (tiap obyek yang terbentuk dari class tersebut akan berbagi/share variabel yang sama), bukan instance variable • Akses ke static class member yang bersifat public  gunakan nama class nya dan tanda titik (.) • Akses ke static class member yang bersifat private  gunakan methodnya yang bersifat public

  12. Contoh akses ke public static class member class kotak { private int panjang; private int lebar; public static int jum_kotak; public kotak(int x, int y) { panjang = x; lebar = y; jum_kotak = jum_kotak + 1; } public int getKotak() { return jum_kotak; } }

  13. public class kotak1 { public static void main (String args[]) { kotak k1 = new kotak(3,2); System.out.println("Jumlah kotak : "+kotak.jum_kotak); kotak k2 = new kotak(4,3); System.out.println("Jumlah kotak : "+kotak.jum_kotak); } } Hasilnya :

  14. Contoh akses ke private static class member class kotak { private int panjang; private int lebar; private static int jum_kotak; public kotak(int x, int y) { panjang = x; lebar = y; jum_kotak = jum_kotak + 1; } public int getKotak() { return jum_kotak; } }

  15. public class kotak1 { public static void main (String args[]) { kotak k1 = new kotak(3,2); System.out.println("Jumlah kotak : "+k1.getKotak()); kotak k2 = new kotak(4,3); System.out.println("Jumlah kotak : "+k2.getKotak()); //k2.getKotak() bisa juga diganti mjd k1.getKotak(), //karena mereka berbagi field jum_kotak } } Hasilnya :

  16. Final Instance Variable • Menggunakan keyword ‘final’ • Diterapkan pada instance variable atau field • Untuk membuat konstanta • Menyebabkan field tidak bisa diubah setelah proses inisialisasi.

  17. Contoh Program : class kelas { private String namakelas; private final int jum_isi; public kelas(String x, int y) { namakelas=x; jum_isi=y;} public String getNamaKelas() { return namakelas;} public int getJum_isi() { return jum_isi;} /*public void nambah() { jum_isi++; }*/ }

  18. public class final1 { public static void main(String args[]) { kelas k1 = new kelas("XB",50); System.out.println("Isi final jum_isi : "+k1.getJum_isi()); } } Hasilnya :

  19. Kalau tanda remark pada class kelas dibuka, maka akan terjadi kesalahan. Karena field jum_isi yang bersifat final dicoba untuk diubah dengan cara ditambah dengan 1. Errornya :

More Related