Saturday, June 7, 2014

Tutorial 41 - Inheritance

Katakanlah kita buat dua class untuk adik-beradik lelaki dan perempuan, macam ni:

class Daughter

class Son


Lepas dah siap semua, tiba-tiba kita rasa nak tukar dari emoticon
:)

ke
:D

Kita pun tukarlah satu-satu code tu.

Hmmm, macam leceh pulak kena tukar satu-satu. Yang ni takpe lagi untuk senyum saje, macam mana kalau nanti nak buat untuk makan, mandi, tidur pulak?


Jadi, kita gunalah konsep inheritance.

Sekarang kita buat class untuk ibu, macam ni:

class Mother


Untuk buat inheritance, kita tambah keyword extends kat class Daughter dan Son, macam ni:

class Daughter guna inheritance

class Son guna inheritance


Inheritance bermaksud warisan.

Contoh, kadang-kadang kita ada dengar orang cakap, "Eh, muka dia macam mak dia la!", maksudnya dia ada mewarisi sifat ibu dia.

Bila kita letak extends macam ni,
public class Daughter extends Mother

Java pun paham:
"Oh ok, class Daughter ni mewarisi class Mother"

lalu Java secara automatik letak sifat-sifat dari class Mother kat class Daughter.

Kalau perasan, kita tak letak apa-apa pun dalam class Daughter dan Son, tapi sebenarnya ada method senyum().

Kalau tak percaya, kita test class Daughter dan Son, kita tengok boleh tak diorang senyum, macam ni:

test class Daughter dan class Son


Oh, sebelum terlupa. Bila Daughter atau Son extends Mother, kita akan panggil Mother sebagai superclass, dan Daughter/Son sebagai subclass.

Mother    ---> superclass

Daughter ---> subclass
Son          ---> subclass



Sekian saja tutorial kali ini.

Kalau tengah belajar Java, bila orang tanya inheritance, cepat-cepat ingat extends!
inheritance: extends
inheritance: extends
inheritance: extends

Friday, June 6, 2014

Tutorial 40 - Composition

Sebelum-sebelum ni class yang kita buat ada instance variable, contoh macam ni:

class Date untuk simpan tarikh


Perhatikan kat sini,
private int day;
private int month;
private int year;

yang biasa kita letak int, double, String, dan lain-lain kan?

Apa kata kalau kita nak buat class 'Kawan', dalamnya ada simpan nama dan birthday, boleh tak?

Nama boleh disimpan sebagai String, tapi macam mana dengan birthday?

Jadi, itulah tutorial kali ni iaitu Composition (cara sebut: Kom Po Zi Syen).


Kita dah ada class 'Date' untuk simpan tarikh, dan kita akan guna class ni untuk simpan tarikh lahir.

Sekarang kita buat class 'Kawan', contoh macam ni:

class Kawan dengan penggunaan composition


Perhatikan yang ni,
private Date birthDay;

itulah yang dipanggil Composition.

Kita letak class sebagai instance variable.


Nak test class ni, kita boleh run macam ni:

class untuk test composition


Sekian, terima kasih.

Thursday, June 5, 2014

Tutorial 39 - toString()

Kita tengok balik code dari Tutorial 37.

Bila kita nak display time, kita akan tulis macam ni:

call class Time objek subuh


Katakanlah kita rasa malas pulak nak tulis .getTime() tu, kita nak tulis macam ni saje:
System.out.println(subuh);


Caranya tambah saja method toString(),

class Time ditambah method tostring


Kita boleh return apa-apa saja string, dan bila kita tulis,
System.out.println(subuh);
kita akan dapat string seperti dalam method toString() tersebut.

Dalam kes ni kita nak tulis sama macam method getTime(), jadi kita guna balik getTime(),
return getTime();



Itu saja, sekian.

Tutorial 38 - Constructor Overloading (part 2)

Tutorial ni adalah sambungan dari Tutorial 37.

Kalau perasan dalam class Time ada satu benda yang nampak leceh, setiap constructor tu kita kena tulis balik isi yang sama:

hour = h;
minute = m;
second = s;


Kalau macam ni takpe lagi ada tiga baris je, nanti macam mana kalau ada berpuluh-puluh baris? Naya dibuatnya.

Untuk selesaikan masalah ni kita akan guna keyword this, macam ni:

class Time selepas diringkaskan


Ingat lagi dari Tutorial 36?

Kat Tutorial 36 keyword this merujuk 'this class', ataupun 'class ini'.

Kan nama untuk constructor sama dengan nama class, jadi bila kita tulis this dengan kurungan,

this();


secara automatik dia akan panggil constructor.

Dekat sini kita tulis,

this(0, 0, 0);


maksudnya kita akan guna constructor yang ada tiga parameter, iaitu

public Time(int h, int m, int s)


dan h akan jadi 0, m jadi 0, s pun jadi 0.


Sekian. Kalau kurang faham, bukak dua-dua tutorial, Tutorial 37 dan 38, dan bandingkan.

Tutorial 37 - Constructor Overloading

Katakanlah kita buat satu class yang ada constructor, macam ni:

class Time yang asal


Dan untuk guna class Time, kita akan tulis macam ni:

main class yang asal untuk run class Time


Untuk guna class Time, Java akan paksa kita untuk letak tiga argument(contoh: 3, 45, 30), baru kita boleh guna class tersebut.

Tapi, macam mana kalau ada satu hari nanti kita jadi malas sikit, kita nak letak satu je argument ataupun takmau letak langsung! Dan kita masih nak guna class Time.

Jadi, itulah tujuan tutorial ini, iaitu dengan menggunakan constructor overloading. Istilah ni tak payah ingat pun takpe, saje kabor kot-kot nanti exam tanya.

Kat bawah ni adalah contoh penggunaan constructor overloading:

class Time dengan constructor overloading


Simple je kan?

Kita tambah saje constructor baru dengan parameter yang lain-lain.

Nak tau jadi ke tak, kita run ni:

main class untuk run class Time lepas tambah constructor overloading


dan akan dapat output:

03:45:30
02:30:00
20:00:00
00:00:00



Tutorial akan datang kita akan tengok macam mana nak ringkaskan lagi class Time ni.

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Hot Sonakshi Sinha, Car Price in India