7 sokongan oo dalam java kelas

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

Upload: madzani-nusa

Post on 23-Jun-2015

634 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 7   Sokongan Oo Dalam Java   Kelas

Sokongan OO Dalam Java:

Kelas

Sufian IdrisMarini Abu Bakar

Jabatan Sains Komputer

Page 2: 7   Sokongan Oo Dalam Java   Kelas

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

Page 3: 7   Sokongan Oo Dalam Java   Kelas

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

Page 4: 7   Sokongan Oo Dalam Java   Kelas

Contoh:Berikut adalah rangka takrifan kelas

Kursus:class Kursus {

}

Page 5: 7   Sokongan Oo Dalam Java   Kelas

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

Page 6: 7   Sokongan Oo Dalam Java   Kelas

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

Page 7: 7   Sokongan Oo Dalam Java   Kelas

Contoh:Andaikan setiap objek Kursus mempunyai atribut berikut:

nama kursuskod kursusbilangan pelajar yang mendaftarpensyarah yang mengajar

Page 8: 7   Sokongan Oo Dalam Java   Kelas

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

Page 9: 7   Sokongan Oo Dalam Java   Kelas

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

kurs = new Kursus( ) KursusnamakodbilDaftarpensyarahkurs

Page 10: 7   Sokongan Oo Dalam Java   Kelas

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.

Page 11: 7   Sokongan Oo Dalam Java   Kelas

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

Page 12: 7   Sokongan Oo Dalam Java   Kelas

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

Page 13: 7   Sokongan Oo Dalam Java   Kelas

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

Page 14: 7   Sokongan Oo Dalam Java   Kelas

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

Page 15: 7   Sokongan Oo Dalam Java   Kelas

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

Page 16: 7   Sokongan Oo Dalam Java   Kelas

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.

Page 17: 7   Sokongan Oo Dalam Java   Kelas

class Masa {private int jam;private int minit;

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

}

…}

objek penerima mencapai nilai atributnya

Page 18: 7   Sokongan Oo Dalam Java   Kelas

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.

Page 19: 7   Sokongan Oo Dalam Java   Kelas

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

Page 20: 7   Sokongan Oo Dalam Java   Kelas

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.

Page 21: 7   Sokongan Oo Dalam Java   Kelas

PengawalSekitaran

SensorPemanasPendingin

getSuhuSemasa()

kawalSuhu()

on() off()

40

40

getSuhuOptimum()

25

Senario 1

Page 22: 7   Sokongan Oo Dalam Java   Kelas

PengawalSekitaran

SensorPemanasPendingin

getSuhuSemasa()

kawalSuhu()

off() on()

6

6

getSuhuOptimum()

25

Senario 2

Page 23: 7   Sokongan Oo Dalam Java   Kelas

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