7 sokongan oo dalam java kelas

Post on 23-Jun-2015

636 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sokongan OO Dalam Java:

Kelas

Sufian IdrisMarini Abu Bakar

Jabatan Sains Komputer

Pengenalan

• Dalam bab ini, kita akan lihat peranan pengaturcara sebagai pembina kelas.

• Aspek berikut akan diterangkan:– Menulis takrifan kelas– Mengisytihar atribut objek– Menulis takrifan metod objek

Menakrif Kelas

• Berikut adalah satu bentuk mudah takrifan kelas dalam Java:

class <nama_kelas> {<senarai_atribut_objek><senarai_metod_objek>

}

<nama_kelas> adalah nama kelas yang ditakrifkan. Lazimnya, nama kelas bermula dengan huruf BESAR

Contoh:Berikut adalah rangka takrifan kelas

Kursus:class Kursus {

}

Mengisytihar Atribut Objek

• Ingat kembali bahawa atribut suatu objek dikodkan dalam Java sebagai suatu pembolehubah yang dimiliki oleh objek tersebut.

• Pembolehubah ini digelar pembolehubah ahli atau pembolehubah objek (member/instance/object variable).

• Ingat kembali bahawa objek seharusnya mengkapsulkan atributnya.

• Berikut adalah templat untuk mengisytihar atribut:private <jenis_atribut>

<nama_atribut>;

• Kata kunci private bermaksud bahawa atribut itu dikapsulkan.

Contoh:Andaikan setiap objek Kursus mempunyai atribut berikut:

nama kursuskod kursusbilangan pelajar yang mendaftarpensyarah yang mengajar

Takrifan kelas Kursus setelah diubahsuai:class Kursus {

private String nama; private String kod;private int bilDaftar;

private String pensyarah;…

}

nama kursus

kod kursus

bilangan pelajar yang mendaftar

pensyarah yang mengajar

• Setiap objek Kursus yang dicipta akan diperuntukkan ingatan untuk setiap pembolehubah ahli yang diisytiharkan dalam kelas Kursus.

kurs = new Kursus( ) KursusnamakodbilDaftarpensyarahkurs

Menulis Takrifan Metod Objek

• Ingat kembali bahawa pengimplementasian metod adalah “rahsia” objek dan disembunyikan daripada klien.

• Ingat kembali bahawa mesej yang boleh dihantar oleh klien hendaklah tersenarai dalam antaramuka objek.

Metod:public <jenis_kembali>

<nama_metod>(<senarai_parameter>)

{<badan_metod>

}

– Kata kunci public bermaksud bahawa metod itu akan disenaraikan dalam antaramuka objek.

– Perlu diingat bahawa <badan_metod> tetap dikapsulkan.

pengimplementasian metod

Contoh 1:Pertimbangkan spesifikasi kelas Segiempat

berikut:Segiempat

Atribut

Kapsulkan?

lebar Ya

tinggi Ya

Metod

Parameter Nilai kembali Dalam antaramuka?

setLebar lebar baru - Ya

setTinggi tinggi baru - Ya

luas - luas segiempat Ya

atribut

private int lebar;private int tinggi;

Tuliskan rangka takrifan kelas dalam Java untuk kelas Segiempat

public void setTinggi(int tinggiBaru) {

…}

metod setTinggi()

class Segiempat {

}

public void setLebar(int lebarBaru) { …}

metod setLebar()

public int luas() { …} metod luas()

Menulis Badan Metod

• Ingat kembali bahawa perlakuan objek boleh menyebabkan– keadaannya berubah– penghantaran mesej kepada objek lain

(termasuk kepada dirinya sendiri).

• Dalam melaksanakan suatu metod, objek biasanya menggunakan cara berikut untuk mendapatkan data:– capai nilai atributnya– capai nilai parameter metod tersebut– dapatkan daripada objek lain menerusi

penghantaran mesej

• Selain daripada mendapatkan data, objek boleh juga menghantar mesej kepada objek lain (termasuk kepada dirinya sendiri) untuk meminta ia melakukan sesuatu.

• Suatu analogi: cara manusia melaksanakan suatu tugas.

Contoh 1:Berikut adalah takrifan metod papar( ) bagi kelas Masa. Objek Masa yang melaksanakan metod ini akan memaparkan masa yang diwakilinya dalam format 24 jam. Dalam takrifan kelas Masa, setiap objek Masa mempunyai atribut jam dan minit.

class Masa {private int jam;private int minit;

public void papar( ) {System.out.print( jam + ":" + minit );

}

…}

objek penerima mencapai nilai atributnya

Contoh 2:Berikut adalah takrifan metod tambah( ) bagi kelas Masa. Objek Masa yang melaksanakan metod ini akan menambah masa yang diwakilinya sebanyak nilai jam dan minit yang dihulurkan oleh klien.

class Masa {private int jam;private int minit;

…public void tambah(int dJam, int dMinit) {

int bawa = 0;minit += dMinit;if (minit > 59) {

bawa = minit / 60;minit = minit % 60;

}jam = (jam + dJam + bawa) % 24;

}

}

objek penerima mencapai nilai parameter metod

Contoh 3:Berikut adalah takrifan metod kawalSuhu( ) bagi kelas PengawalSekitaran. Setiap objek PengawalSekitaran mempunyai pautan kepada satu objek Sensor, satu objek Pemanas dan satu objek Pendingin. Objek Sensor memahami mesej getSuhuSemasa( ) yang akan mengembalikan suhu sekitaran yang diukur. Objek Pemanas dan Pendingin memahami mesej on( ) / off( ) yang menyebabkan alat yang berkenaan dihidupkan / dimatikan.

PengawalSekitaran

SensorPemanasPendingin

getSuhuSemasa()

kawalSuhu()

on() off()

40

40

getSuhuOptimum()

25

Senario 1

PengawalSekitaran

SensorPemanasPendingin

getSuhuSemasa()

kawalSuhu()

off() on()

6

6

getSuhuOptimum()

25

Senario 2

class PengawalSekitaran {private Sensor alatSensor;private Pemanas alatPemanas;private Pendingin alatPendingin;

...public void kawalSuhu( ) {

float suhu = alatSensor.getSuhuSemasa( );float suhuOptimum = this.getSuhuOptimum( );if (suhu > suhuOptimum) {

alatPendingin.on( );alatPemanas.off( );

} else if (suhu < suhuOptimum) {

alatPendingin.off( );alatPemanas.on( );

}}

public float getSuhuOptimum( ) {…

}…

}

objek penerima hantar mesej kepada objek Pemanas dan Pendinginnya untuk meminta mereka melakukan sesuatu

objek penerima hantar mesej kepada objek Sensornya untuk mendapatkan suatu data

objek penerima hantar mesej kepada dirinya untuk mendapatkan suatu data

top related