5 sokongan oo dalam java objek

Post on 23-Jun-2015

991 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sokongan OO Dalam Java:

Objek

Sufian IdrisMarini Abu Bakar

Jabatan Sains Komputer

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

• Aspek berikut akan dibincangkan:– Mencipta objek– Menghantar mesej kepada objek– Pemboleh ubah objek– Mencapai atribut objek– Memusnah 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

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

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

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

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

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.

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>;

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>

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.

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?

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

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);

}}

}

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>

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;

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

• 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

• 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

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.

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);}

}

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

top related