Successfully reported this slideshow.
Sokongan OO Dalam Java:  Objek Sufian Idris Marini Abu Bakar Jabatan Sains Komputer
Pengenalan <ul><li>Peranan pengaturcara dalam menulis aturcara OO, sebagai: </li></ul><ul><ul><li>pengguna  kelas  </li></...
<ul><li>Aspek berikut akan dibincangkan: </li></ul><ul><ul><li>Mencipta objek </li></ul></ul><ul><ul><li>Menghantar mesej ...
Mencipta Objek <ul><li>Untuk mencipta suatu objek daripada suatu kelas, gunakan kata kunci  new . </li></ul><ul><li>Sintak...
<ul><li>Apabila objek dicipta, Java akan menyediakan ruang ingatan yang secukupnya bagi menyimpan nilai setiap atributnya....
<ul><li>Contoh: </li></ul><ul><li>Pertimbangkan format mencipta setiap objek berikut: </li></ul><ul><li>Bulatan(x, y, j, w...
<ul><li>Tulis pernyataan-pernyataan Java untuk mencipta objek-objek yang terlibat dalam gambar di bawah: </li></ul>
Menghantar Mesej Kepada Objek <ul><li>Hantar mesej  kepada suatu objek untuk memintanya melakukan sesuatu.  </li></ul><ul>...
<ul><li>Dalam Java, operator  titik  digunakan dalam penghantaran mesej.  </li></ul><ul><ul><li>Sintaksnya : </li></ul></u...
Pemboleh Ubah Objek <ul><li>Untuk membolehkan kita merujuk kepada suatu objek berkali-kali, kita boleh menakrifkan pembole...
<ul><li>Contoh 1: </li></ul><ul><li>Diberikan: </li></ul><ul><ul><li>new   Manusia(<n>)   </li></ul></ul><ul><ul><ul><li>c...
<ul><li>Pertimbangkan kod Java di bawah: </li></ul><ul><ul><li>Kereta  kereta; </li></ul></ul><ul><ul><li>Manusia  pensyar...
<ul><li>Contoh 2: </li></ul><ul><ul><li>Pertimbangkan pula: </li></ul></ul><ul><ul><ul><li>Kereta  kereta =  new Kereta (&...
<ul><li>Contoh: </li></ul><ul><ul><li>Kelas  Stack  adalah satu daripada kelas yang dibekalkan dalam pustaka  java .  Obje...
<ul><li>Apakah yang dilakukan oleh atur cara berikut? </li></ul><ul><ul><li>import java.util.*; </li></ul></ul><ul><ul><li...
Mencapai Atribut Objek <ul><li>Objek mengandungi  atribut  yang secara kolektif mewakilkan  keadaan nya.  Misalnya, antara...
<ul><li>Contoh:   </li></ul><ul><ul><li>Andaikan objek  Akaun  mempunyai suatu atribut yang namanya  baki . </li></ul></ul...
Memusnah Objek <ul><li>Apakah yang akan berlaku apabila segmen kod (dalam bahasa C) berikut dilaksanakan? </li></ul><ul><u...
<ul><li>Dalam C, pengaturcara bertanggungjawab  membebaskan ingatan  yang tidak diperlukan lagi supaya tidak wujud sampah....
<ul><li>Sistem masa larian Java mempunyai fitur  pengumpul sampah automatik .  </li></ul><ul><li>Pengumpul sampah Java mer...
Contoh Aplikasi <ul><li>Pustaka  java  mengandungi kelas  Vector .  </li></ul><ul><li>Objek  Vector  boleh dianggap sebaga...
<ul><li>Apakah yang dilakukan oleh atur cara di bawah? </li></ul><ul><ul><li>import java.util.*; </li></ul></ul><ul><ul><l...
Maklumat Antara Muka Kelas Pustaka  <ul><li>Maklumat antara muka kelas yang disediakan dalam pustaka Java boleh diperolehi...
Upcoming SlideShare
Loading in …5
×

5 Sokongan Oo Dalam Java Objek

1,138 views

Published on

Published in: Technology, News & Politics
  • Be the first to comment

  • Be the first to like this

5 Sokongan Oo Dalam Java Objek

  1. 1. Sokongan OO Dalam Java: Objek Sufian Idris Marini Abu Bakar Jabatan Sains Komputer
  2. 2. Pengenalan <ul><li>Peranan pengaturcara dalam menulis aturcara OO, sebagai: </li></ul><ul><ul><li>pengguna kelas </li></ul></ul><ul><ul><li>penakrif kelas </li></ul></ul><ul><li>Objek adalah sesuatu yang terdiri daripada data ( keadaan ) dan metod ( perlakuan ). </li></ul><ul><li>Objek lebih kompleks daripada data primitif (spt nilai integer). </li></ul>
  3. 3. <ul><li>Aspek berikut akan dibincangkan: </li></ul><ul><ul><li>Mencipta objek </li></ul></ul><ul><ul><li>Menghantar mesej kepada objek </li></ul></ul><ul><ul><li>Pemboleh ubah objek </li></ul></ul><ul><ul><li>Mencapai atribut objek </li></ul></ul><ul><ul><li>Memusnah objek </li></ul></ul>
  4. 4. Mencipta Objek <ul><li>Untuk mencipta suatu objek daripada suatu kelas, gunakan kata kunci new . </li></ul><ul><li>Sintaksnya: </li></ul><ul><ul><li>new <nama_kelas>(<senarai_parameter>) </li></ul></ul><ul><ul><li>senarai parameter yang perlu dihulurkan untuk mencipta objek. </li></ul></ul><ul><ul><li>parameter ini adalah data untuk mengAWALkan objek yang dicipta </li></ul></ul>
  5. 5. <ul><li>Apabila objek dicipta, Java akan menyediakan ruang ingatan yang secukupnya bagi menyimpan nilai setiap atributnya. </li></ul><ul><ul><li>Contoh 1 : </li></ul></ul><ul><ul><ul><li>new Permainan() </li></ul></ul></ul><ul><ul><ul><li>- cipta satu objek daripada kelas Permainan . </li></ul></ul></ul><ul><ul><li>Contoh 2: </li></ul></ul><ul><ul><ul><li>new Segiempat(4, 4) </li></ul></ul></ul><ul><ul><ul><li>- cipta satu objek daripada kelas Segiempat yang lebarnya 4 dan tingginya 4. </li></ul></ul></ul>
  6. 6. <ul><li>Contoh: </li></ul><ul><li>Pertimbangkan format mencipta setiap objek berikut: </li></ul><ul><li>Bulatan(x, y, j, w) </li></ul><ul><li>cipta objek Bulatan dgn: </li></ul><ul><ul><li>koordinat pusat (x, y) </li></ul></ul><ul><ul><li>jejarinya j </li></ul></ul><ul><ul><li>warnanya w </li></ul></ul><ul><ul><li>dgn warna sbg rentetan: </li></ul></ul><ul><ul><li>“ merah” , “hitam” , “biru” , “kuning” , “hijau” , “putih” </li></ul></ul><ul><li>Segiempat(x, y, lb, tg, w) </li></ul><ul><li>cipta objek Segiempat dgn: </li></ul><ul><ul><li>koordinat bucu atas kiri (x, y) </li></ul></ul><ul><ul><li>lebar lb </li></ul></ul><ul><ul><li>tinggi tg </li></ul></ul><ul><ul><li>warna w </li></ul></ul>
  7. 7. <ul><li>Tulis pernyataan-pernyataan Java untuk mencipta objek-objek yang terlibat dalam gambar di bawah: </li></ul>
  8. 8. Menghantar Mesej Kepada Objek <ul><li>Hantar mesej kepada suatu objek untuk memintanya melakukan sesuatu. </li></ul><ul><ul><li>Misalnya, hantar mesej keluarWang() kepada objek Akaun untuk mengeluarkan sejumlah wang. </li></ul></ul><ul><li>Objek yang menerima mesej akan bertindakbalas dengan melaksanakan metod yang sepadan dengan mesej tersebut. </li></ul><ul><li>Nama mesej yang dihantar hendaklah sama dengan nama metod yang akan dilaksanakan oleh objek tersebut. </li></ul><ul><li>Mesej yang boleh dihantar mestilah yang difahami olehnya (rujuk antara muka objek ). </li></ul>
  9. 9. <ul><li>Dalam Java, operator titik digunakan dalam penghantaran mesej. </li></ul><ul><ul><li>Sintaksnya : </li></ul></ul><ul><ul><ul><li><objek>.<nama_mesej>(<sen_parameter>) </li></ul></ul></ul><ul><ul><li>Contoh 1: </li></ul></ul><ul><ul><ul><li>(new Permainan()).mula() </li></ul></ul></ul><ul><ul><ul><li>- mesej mula() dihantar kepada suatu objek Permainan . </li></ul></ul></ul><ul><ul><li>Contoh 2: </li></ul></ul><ul><ul><ul><li>int luasSegi4; </li></ul></ul></ul><ul><ul><ul><li>luasSegi4 = (new Segiempat(20, 23)).luas(); </li></ul></ul></ul><ul><ul><ul><li>- mesej luas() dihantar kepada suatu objek Segiempat . </li></ul></ul></ul>
  10. 10. Pemboleh Ubah Objek <ul><li>Untuk membolehkan kita merujuk kepada suatu objek berkali-kali, kita boleh menakrifkan pemboleh ubah objek untuk menyimpan rujukan kepada objek tersebut. </li></ul><ul><li>Sintaks untuk mengisytiharkan suatu pemboleh ubah objek: </li></ul><ul><ul><li><jenis_objek> <nama_pemboleh_ubah>; </li></ul></ul>
  11. 11. <ul><li>Contoh 1: </li></ul><ul><li>Diberikan: </li></ul><ul><ul><li>new Manusia(<n>) </li></ul></ul><ul><ul><ul><li>cipta suatu objek Manusia dgn nama <n> </li></ul></ul></ul><ul><ul><li>new Kereta(<m>) </li></ul></ul><ul><ul><ul><li>cipta suatu objek Kereta yang modelnya <m> </li></ul></ul></ul><ul><ul><li>Objek Kereta faham mesej setPemilik(<manusia>) </li></ul></ul><ul><ul><ul><li>Tindakbalas: setkan pemiliknya kepada <manusia> </li></ul></ul></ul><ul><ul><li>Objek Manusia faham mesej pandu(<kereta>) </li></ul></ul><ul><ul><ul><li>Tindakbalas: memandu <kereta> </li></ul></ul></ul>
  12. 12. <ul><li>Pertimbangkan kod Java di bawah: </li></ul><ul><ul><li>Kereta kereta; </li></ul></ul><ul><ul><li>Manusia pensyarah, peminjam; </li></ul></ul><ul><ul><li>pensyarah = new Manusia (&quot;Azizi&quot;); </li></ul></ul><ul><ul><li>peminjam = new Manusia (&quot;Belal&quot;); </li></ul></ul><ul><ul><li>kereta = new Kereta (&quot;Iswara&quot;); </li></ul></ul><ul><ul><li>kereta. setPemilik (pensyarah); </li></ul></ul><ul><ul><li>peminjam. pandu (kereta); </li></ul></ul><ul><li>Lakarkan satu rajah yang menunjukkan objek-objek yang terlibat serta hubungan antaranya. </li></ul>
  13. 13. <ul><li>Contoh 2: </li></ul><ul><ul><li>Pertimbangkan pula: </li></ul></ul><ul><ul><ul><li>Kereta kereta = new Kereta (&quot;Proton Perdana&quot;); </li></ul></ul></ul><ul><ul><ul><li>Manusia pensyarah = new Manusia (&quot;Sufian Idris&quot;); </li></ul></ul></ul><ul><ul><ul><li>kereta. setPemilik (pensyarah); </li></ul></ul></ul><ul><ul><ul><li>pensyarah = new Manusia (&quot;Aziz Deraman&quot;); </li></ul></ul></ul><ul><ul><li>Lakarkan satu rajah yang menunjukkan objek-objek yang terlibat serta hubungan antaranya. </li></ul></ul><ul><ul><li>Adakah ini bermaksud bahawa kereta Proton Perdana itu kini dimiliki oleh Aziz Deraman? </li></ul></ul>
  14. 14. <ul><li>Contoh: </li></ul><ul><ul><li>Kelas Stack adalah satu daripada kelas yang dibekalkan dalam pustaka java . Objek Stack mewakilkan suatu timbunan. Antara mesej yang difahami oleh objek Stack adalah: </li></ul></ul><ul><ul><ul><li>i. push(Object obj) </li></ul></ul></ul><ul><ul><ul><ul><li>letakkan objek obj di lokasi teratas. </li></ul></ul></ul></ul><ul><ul><ul><li>ii. pop() </li></ul></ul></ul><ul><ul><ul><ul><li>keluarkan objek di lokasi teratas dan kembalikan objek itu. </li></ul></ul></ul></ul><ul><ul><ul><li>iii. empty() </li></ul></ul></ul><ul><ul><ul><ul><li>kembalikan true sekiranya kosong. Jika sebaliknya, kembalikan false . </li></ul></ul></ul></ul><ul><ul><ul><li>iv. peek() </li></ul></ul></ul><ul><ul><ul><ul><li>kembalikan objek di lokasi teratas tetapi tidak mengeluarkannya </li></ul></ul></ul></ul>
  15. 15. <ul><li>Apakah yang dilakukan oleh atur cara berikut? </li></ul><ul><ul><li>import java.util.*; </li></ul></ul><ul><ul><li>class Aplikasi { </li></ul></ul><ul><ul><ul><li>public static void main(String[] args) { </li></ul></ul></ul><ul><ul><ul><ul><li>Stack timbunan = new Stack (); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>timbunan. push (&quot;saya&quot;); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>timbunan. push (&quot;suka&quot;); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>timbunan. push (&quot;makan&quot;); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>timbunan. push (&quot;nasi&quot;); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>while (!timbunan. empty ()) { </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>String unsur = (String) timbunan. pop (); </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>System.out.println(unsur); </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>} </li></ul></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><ul><li>} </li></ul></ul>
  16. 16. Mencapai Atribut Objek <ul><li>Objek mengandungi atribut yang secara kolektif mewakilkan keadaan nya. Misalnya, antara atribut objek Akaun adalah nomborAkaun , pemilik dan baki . </li></ul><ul><li>Untuk mencapai atribut suatu objek dalam Java, gunakan operator titik. </li></ul><ul><ul><li>Sintaksnya: </li></ul></ul><ul><ul><ul><li><objek>.<nama_atribut> </li></ul></ul></ul>
  17. 17. <ul><li>Contoh: </li></ul><ul><ul><li>Andaikan objek Akaun mempunyai suatu atribut yang namanya baki . </li></ul></ul><ul><ul><ul><li>Akaun akaunSaya; </li></ul></ul></ul><ul><ul><ul><li>float bakiAkaun; </li></ul></ul></ul><ul><ul><ul><li>Manusia pemilik = new Manusia (&quot;Nada Asyiqin&quot;); </li></ul></ul></ul><ul><ul><ul><li>akaunSaya = new Akaun (&quot;05117334457&quot;, pemilik, 1000.40); </li></ul></ul></ul><ul><ul><ul><li>bakiAkaun = akaunSaya. baki ; </li></ul></ul></ul>
  18. 18. Memusnah Objek <ul><li>Apakah yang akan berlaku apabila segmen kod (dalam bahasa C) berikut dilaksanakan? </li></ul><ul><ul><ul><li>struct Titik *titik; </li></ul></ul></ul><ul><ul><ul><li>while (1) { </li></ul></ul></ul><ul><ul><ul><ul><li>titik = (struct Titik *) malloc(sizeof (struct Titik)); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>titik.x = 20; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>titik.y = 30; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>papar(titik); </li></ul></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><li>Ruang ingatan yang diperlukan untuk satu struct Titik akan diperuntukkan bagi setiap panggilan malloc . Ruang ingatan tersebut diambil daripada longgokan masa larian yang terhad saiznya. </li></ul><ul><li>Lama kelamaan aturcara terpaksa dihentikan atas sebab kekurangan ingatan. </li></ul>gelung tanpa henti
  19. 19. <ul><li>Dalam C, pengaturcara bertanggungjawab membebaskan ingatan yang tidak diperlukan lagi supaya tidak wujud sampah. </li></ul><ul><li>Sampah adalah ruang ingatan yang tidak digunakan lagi tetapi tidak dapat diguna semula kerana dianggap masih digunakan. </li></ul><ul><ul><ul><li>struct Titik *titik; </li></ul></ul></ul><ul><ul><ul><li>while (1) { </li></ul></ul></ul><ul><ul><ul><li> titik = (struct Titik *) </li></ul></ul></ul><ul><ul><ul><ul><li>malloc(sizeof (struct Titik)); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>titik.x = 3; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>titik.y = 100; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>papar(titik); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>free(titik); </li></ul></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul>gelung tanpa henti
  20. 20. <ul><li>Sistem masa larian Java mempunyai fitur pengumpul sampah automatik . </li></ul><ul><li>Pengumpul sampah Java merupakan suatu proses latar belakang yang tugasnya mencari sampah dan membebaskannya. </li></ul><ul><li>Dengan adanya pengumpul sampah, pengaturcara Java tidak dibebankan dengan tanggungjawab membebaskan ingatan. </li></ul><ul><ul><ul><li>Titik titik; </li></ul></ul></ul><ul><ul><ul><li>while (true) { </li></ul></ul></ul><ul><ul><ul><ul><li>titik = new Titik(3, 100); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>titik.papar(); </li></ul></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul>gelung tanpa henti
  21. 21. Contoh Aplikasi <ul><li>Pustaka java mengandungi kelas Vector . </li></ul><ul><li>Objek Vector boleh dianggap sebagai suatu tatasusunan yang boleh mengembang (serta menguncup) mengikut keperluan. </li></ul><ul><li>Antara mesej yang difahami oleh objek Vector : </li></ul><ul><ul><li>i. addElement(Object obj) </li></ul></ul><ul><ul><ul><li>menambah objek obj di hujung. </li></ul></ul></ul><ul><ul><li>ii. elementAt(int indeks) </li></ul></ul><ul><ul><ul><li>mengembalikan objek di indeks . </li></ul></ul></ul><ul><ul><li>iii. size() </li></ul></ul><ul><ul><ul><li>mengembalikan saiz. </li></ul></ul></ul><ul><ul><li>iv. removeElementAt(int indeks) </li></ul></ul><ul><ul><ul><li>mengeluarkan objek di indeks. </li></ul></ul></ul>
  22. 22. <ul><li>Apakah yang dilakukan oleh atur cara di bawah? </li></ul><ul><ul><li>import java.util.*; </li></ul></ul><ul><ul><li>class Aplikasi { </li></ul></ul><ul><ul><li>public static void main(String[] args) { </li></ul></ul><ul><ul><ul><li>Vector vektor1 = new Vector (); </li></ul></ul></ul><ul><ul><ul><li>Vector vektor2 = new Vector (); </li></ul></ul></ul><ul><ul><ul><li>vektor1. addElement (“Satu”); </li></ul></ul></ul><ul><ul><ul><li>vektor1. addElement (“Dua”); </li></ul></ul></ul><ul><ul><ul><li>vektor1. addElement (“Tiga”); </li></ul></ul></ul><ul><ul><ul><li>vektor1. addElement (“Empat”); </li></ul></ul></ul><ul><ul><ul><li>System.out.println(vektor1); </li></ul></ul></ul><ul><ul><ul><li>System.out.println(vektor2); </li></ul></ul></ul><ul><ul><ul><li>for (int i=0; i < vektor1. size (); i++) { </li></ul></ul></ul><ul><ul><ul><ul><li>vektor2. addElement (vektor1. elementAt (i)); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>vektor1. removeElementAt (i); </li></ul></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><ul><ul><li>System.out.println(vektor1); </li></ul></ul></ul><ul><ul><ul><li>System.out.println(vektor2); </li></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><ul><li>} </li></ul></ul>
  23. 23. Maklumat Antara Muka Kelas Pustaka <ul><li>Maklumat antara muka kelas yang disediakan dalam pustaka Java boleh diperolehi daripada buku rujukan atau di laman web </li></ul><ul><ul><li>http://java.sun.com/j2se/1.4.2/docs/index.html </li></ul></ul><ul><li>Atau dapatkan di: </li></ul><ul><ul><li>http://www.ftsm.ukm.my/jabatan/tk/azizi/tk2933.html </li></ul></ul><ul><ul><li>dan.. </li></ul></ul><ul><ul><li>http ://www.ftsm.ukm.my/jabatan/tk/marini/tk2933/ pautan.htm </li></ul></ul>

×