5 sokongan oo dalam java objek

23
Sokongan OO Dalam Java: Objek Sufian Idris Marini Abu Bakar Jabatan Sains Komputer

Upload: madzani-nusa

Post on 23-Jun-2015

992 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: 5   Sokongan Oo Dalam Java   Objek

Sokongan OO Dalam Java:

Objek

Sufian IdrisMarini Abu Bakar

Jabatan Sains Komputer

Page 2: 5   Sokongan Oo Dalam Java   Objek

Pengenalan

• Peranan pengaturcara dalam menulis aturcara OO, sebagai:– pengguna kelas – penakrif kelas

• Objek adalah sesuatu yang terdiri daripada data (keadaan) dan metod (perlakuan).

• Objek lebih kompleks daripada data primitif (spt nilai integer).

Page 3: 5   Sokongan Oo Dalam Java   Objek

• Aspek berikut akan dibincangkan:– Mencipta objek– Menghantar mesej kepada objek– Pemboleh ubah objek– Mencapai atribut objek– Memusnah objek

Page 4: 5   Sokongan Oo Dalam Java   Objek

Mencipta Objek

• Untuk mencipta suatu objek daripada suatu kelas, gunakan kata kunci new.

• Sintaksnya:new <nama_kelas>(<senarai_parameter>)

senarai parameter yang perlu dihulurkan untuk mencipta objek.

parameter ini adalah data untuk mengAWALkan objek yang dicipta

Page 5: 5   Sokongan Oo Dalam Java   Objek

• Apabila objek dicipta, Java akan menyediakan ruang ingatan yang secukupnya bagi menyimpan nilai setiap atributnya.Contoh 1:

new Permainan()- cipta satu objek daripada kelas Permainan.

Contoh 2:new Segiempat(4, 4)- cipta satu objek daripada kelas Segiempat

yang lebarnya 4 dan tingginya 4.

Page 6: 5   Sokongan Oo Dalam Java   Objek

Contoh:Pertimbangkan format mencipta setiap objek berikut:

Bulatan(x, y, j, w)cipta objek Bulatan dgn:

– koordinat pusat (x, y) – jejarinya j – warnanya wdgn warna sbg

rentetan:“merah”, “hitam”, “biru”, “kuning”, “hijau”, “putih”

Segiempat(x, y, lb, tg, w)

cipta objek Segiempat dgn:

– koordinat bucu atas kiri (x, y)

– lebar lb– tinggi tg – warna w

Page 7: 5   Sokongan Oo Dalam Java   Objek

Tulis pernyataan-pernyataan Java untuk mencipta objek-objek yang terlibat dalam gambar di bawah:

Page 8: 5   Sokongan Oo Dalam Java   Objek

Menghantar Mesej Kepada Objek• Hantar mesej kepada suatu objek untuk

memintanya melakukan sesuatu. Misalnya, hantar mesej keluarWang() kepada objek Akaun untuk mengeluarkan sejumlah wang.

• Objek yang menerima mesej akan bertindakbalas dengan melaksanakan metod yang sepadan dengan mesej tersebut.

• Nama mesej yang dihantar hendaklah sama dengan nama metod yang akan dilaksanakan oleh objek tersebut.

• Mesej yang boleh dihantar mestilah yang difahami olehnya (rujuk antara muka objek).

Page 9: 5   Sokongan Oo Dalam Java   Objek

Dalam Java, operator titik digunakan dalam penghantaran mesej.

Sintaksnya:

<objek>.<nama_mesej>(<sen_parameter>)Contoh 1:

(new Permainan()).mula()

- mesej mula() dihantar kepada suatu objek Permainan.

Contoh 2:int luasSegi4;

luasSegi4 = (new Segiempat(20, 23)).luas();

- mesej luas() dihantar kepada suatu objek Segiempat.

Page 10: 5   Sokongan Oo Dalam Java   Objek

Pemboleh Ubah Objek

• Untuk membolehkan kita merujuk kepada suatu objek berkali-kali, kita boleh menakrifkan pemboleh ubah objek untuk menyimpan rujukan kepada objek tersebut.

• Sintaks untuk mengisytiharkan suatu pemboleh ubah objek:<jenis_objek>

<nama_pemboleh_ubah>;

Page 11: 5   Sokongan Oo Dalam Java   Objek

Contoh 1:Diberikan:

1. new Manusia(<n>) cipta suatu objek Manusia dgn nama <n>

2. new Kereta(<m>) cipta suatu objek Kereta yang modelnya <m>

3. Objek Kereta faham mesej setPemilik(<manusia>) Tindakbalas: setkan pemiliknya kepada <manusia>

4. Objek Manusia faham mesej pandu(<kereta>) Tindakbalas: memandu <kereta>

Page 12: 5   Sokongan Oo Dalam Java   Objek

Pertimbangkan kod Java di bawah:Kereta kereta;Manusia pensyarah, peminjam;pensyarah = new Manusia("Azizi");peminjam = new Manusia("Belal");kereta = new Kereta("Iswara");kereta.setPemilik(pensyarah);peminjam.pandu(kereta);

Lakarkan satu rajah yang menunjukkan objek-objek yang terlibat serta hubungan antaranya.

Page 13: 5   Sokongan Oo Dalam Java   Objek

Contoh 2:Pertimbangkan pula:

Kereta kereta = new Kereta("Proton Perdana");

Manusia pensyarah = new Manusia("Sufian Idris");

kereta.setPemilik(pensyarah);pensyarah = new Manusia("Aziz Deraman");

Lakarkan satu rajah yang menunjukkan objek-objek yang terlibat serta hubungan antaranya.Adakah ini bermaksud bahawa kereta Proton Perdana itu kini dimiliki oleh Aziz Deraman?

Page 14: 5   Sokongan Oo Dalam Java   Objek

Contoh:Kelas Stack adalah satu daripada kelas yang dibekalkan dalam pustaka java. Objek Stack mewakilkan suatu timbunan. Antara mesej yang difahami oleh objek Stack adalah:

i. push(Object obj)letakkan objek obj di lokasi teratas.

ii. pop()keluarkan objek di lokasi teratas dan kembalikan objek itu.

iii. empty()kembalikan true sekiranya kosong. Jika sebaliknya, kembalikan false.

iv. peek()kembalikan objek di lokasi teratas tetapi tidak mengeluarkannya

Page 15: 5   Sokongan Oo Dalam Java   Objek

Apakah yang dilakukan oleh atur cara berikut?

import java.util.*;class Aplikasi {

public static void main(String[] args) {Stack timbunan = new Stack();timbunan.push("saya");timbunan.push("suka");timbunan.push("makan");timbunan.push("nasi");while (!timbunan.empty()) {

String unsur = (String) timbunan.pop();System.out.println(unsur);

}}

}

Page 16: 5   Sokongan Oo Dalam Java   Objek

Mencapai Atribut Objek

• Objek mengandungi atribut yang secara kolektif mewakilkan keadaannya. Misalnya, antara atribut objek Akaun adalah nomborAkaun, pemilik dan baki.

• Untuk mencapai atribut suatu objek dalam Java, gunakan operator titik.Sintaksnya:

<objek>.<nama_atribut>

Page 17: 5   Sokongan Oo Dalam Java   Objek

Contoh: Andaikan objek Akaun mempunyai suatu atribut yang namanya baki.

Akaun akaunSaya;float bakiAkaun;Manusia pemilik = new Manusia("Nada

Asyiqin");akaunSaya = new Akaun("05117334457",

pemilik, 1000.40);bakiAkaun = akaunSaya.baki;

Page 18: 5   Sokongan Oo Dalam Java   Objek

Memusnah Objek• Apakah yang akan berlaku apabila segmen

kod (dalam bahasa C) berikut dilaksanakan?struct Titik *titik;while (1) {

titik = (struct Titik *) malloc(sizeof (struct Titik));titik.x = 20;titik.y = 30;papar(titik);

}

• 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.

• Lama kelamaan aturcara terpaksa dihentikan atas sebab kekurangan ingatan.

gelung tanpa henti

Page 19: 5   Sokongan Oo Dalam Java   Objek

• Dalam C, pengaturcara bertanggungjawab membebaskan ingatan yang tidak diperlukan lagi supaya tidak wujud sampah.

• Sampah adalah ruang ingatan yang tidak digunakan lagi tetapi tidak dapat diguna semula kerana dianggap masih digunakan.

struct Titik *titik;while (1) {

titik = (struct Titik *) malloc(sizeof (struct Titik));titik.x = 3;titik.y = 100;papar(titik);free(titik);

}

gelung tanpa henti

Page 20: 5   Sokongan Oo Dalam Java   Objek

• Sistem masa larian Java mempunyai fitur pengumpul sampah automatik.

• Pengumpul sampah Java merupakan suatu proses latar belakang yang tugasnya mencari sampah dan membebaskannya.

• Dengan adanya pengumpul sampah, pengaturcara Java tidak dibebankan dengan tanggungjawab membebaskan ingatan.

Titik titik;while (true) {

titik = new Titik(3, 100);titik.papar();

}

gelung tanpa henti

Page 21: 5   Sokongan Oo Dalam Java   Objek

Contoh Aplikasi

• Pustaka java mengandungi kelas Vector. • Objek Vector boleh dianggap sebagai

suatu tatasusunan yang boleh mengembang (serta menguncup) mengikut keperluan.

• Antara mesej yang difahami oleh objek Vector:i. addElement(Object obj)

menambah objek obj di hujung.ii.elementAt(int indeks)

mengembalikan objek di indeks.iii. size()

mengembalikan saiz.iv. removeElementAt(int indeks)

mengeluarkan objek di indeks.

Page 22: 5   Sokongan Oo Dalam Java   Objek

Apakah yang dilakukan oleh atur cara di bawah?

import java.util.*;class Aplikasi {public static void main(String[] args) {

Vector vektor1 = new Vector();Vector vektor2 = new Vector();vektor1.addElement(“Satu”);vektor1.addElement(“Dua”);vektor1.addElement(“Tiga”);vektor1.addElement(“Empat”);System.out.println(vektor1);System.out.println(vektor2);for (int i=0; i < vektor1.size(); i++) {

vektor2.addElement(vektor1.elementAt(i));vektor1.removeElementAt(i);

}System.out.println(vektor1);System.out.println(vektor2);}

}

Page 23: 5   Sokongan Oo Dalam Java   Objek

Maklumat Antara Muka Kelas Pustaka

• Maklumat antara muka kelas yang disediakan dalam pustaka Java boleh diperolehi daripada buku rujukan atau di laman web http://java.sun.com/j2se/1.4.2/docs/index.html

• Atau dapatkan di:http://www.ftsm.ukm.my/jabatan/tk/azizi/tk2933.htmldan..http://www.ftsm.ukm.my/jabatan/tk/marini/tk2933/ pautan.htm