Your SlideShare is downloading. ×
0
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
5   Sokongan Oo Dalam Java   Objek
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

5 Sokongan Oo Dalam Java Objek

972

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
972
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
62
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. Sokongan OO Dalam Java: Objek Sufian Idris Marini Abu Bakar Jabatan Sains Komputer
  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. <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. 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. <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. <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. <ul><li>Tulis pernyataan-pernyataan Java untuk mencipta objek-objek yang terlibat dalam gambar di bawah: </li></ul>
  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. <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. 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. <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. <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. <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. <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. <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. 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. <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. 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. <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. <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. 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. <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. 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>

×