Sunday, October 19, 2014

Tutorial 46 - Object Casting

Tutorial ini merupakan permintaan salah seorang yang mengikuti blog ini.

Dalam tutorial polymorphism, ada dua cara untuk declare subclass:
KucingSiam mykucing = new KucingSiam();

dan
Kucing mykucing = new KucingSiam();

Katakanlah kita ada tambah method lompat() pada subclass, iaitu, KucingSiam.

Maknanya, sekarang method yang ada adalah macam ni:
Kucing (superclass) -> makan()
KucingSiam (subclass) -> makan(), lompat()

Apabila kita guna superclass sebagai type (istilah sebenarnya ialah reference), kita hanya boleh guna method yang hanya ada pada superclass sahaja.

Dalam erti kata lain, class Kucing tak boleh guna method lompat().

Jadi, kalau kita nak jugak guna method pada subclass walaupun type yang kita guna adalah superclass, kita kena buat casting.
Kucing mykucing = new KucingSiam();
KucingSiam mykucing2 = (KucingSiam) mykucing;
mykucing2.lompat();

atau secara ringkasnya,
Kucing mykucing = new KucingSiam();
((KucingSiam) mykucing).lompat();



Itu sahaja. Sekian.

Monday, June 23, 2014

Tutorial 45 - Exception Handling

Sebelum kita masuk ke bab File I/O, ada satu benda kita kena ambik tahu dulu, iaitu Exception Handling.

Jadi, tutorial ni kita akan berkenal-kenalan dengan Exception.

Exception ni lebih kurang macam error yang berlaku sewaktu kita run program.

Exception handling pulak bermaksud macam mana kita nak handle exception tersebut.

Disebabkan kita guna Java, secara automatik dia dah handle exception, yay!

Kalau tak percaya, cuba run code ni:

bahagi kosong


Dalam matematik, kita tak boleh bahagi dengan kosong, kalau tak percaya pakai kalkulator.

Bila kita tulis code macam tu, secara automatik Java dah nampak silap, lalu dia pun bagitau:

Exception in thread "main" java.lang.ArithmeticException: / by zero


Sekarang baru kita tahu cara Java handle exception adalah dengan bagitau kita apa exception yang berlaku kemudian tutup program tersebut.

Tapi, boleh tak kalau kita sendiri yang nak handle exception?

Contoh la bila kita ada buat software lepas tu terjadi exception takkan nak tutup terus, ye tak? Dengan tak save bagai, bikin sakit hati je.

Jadi, sekarang kita akan handle exception sendiri, iaitu dengan menggunakan try...catch.

Code... code...:

try catch block


Dalam try kita letak code yang kita nak check, kemudian letak exception apa yang kita nak handle depan catch.

Dalam kes ni kita nak handle ArithmeticException(bahagi kosong), jadi kita letak:

catch (ArithmeticException e)


Kalau taktau exception apa yang akan keluar, kita tulis saja:

catch (Exception e)


dia akan handle semua exception.

Lepas dah tulis catch, kita tulis macam mana kita nak handle exception tersebut.

Contoh kat sini kita tulis "takleh bahagi kosong", kemudian tutup program.


KUIZ!!!

Kalau kita tukar

int a = 5 / 0;


kepada

int a = 5 / 1;


apa yang akan jadi?


Itu saja tutorial kali ni, sekian.

Thursday, June 12, 2014

Tutorial 44 - abstract

Tutorial sebelum ni kita ada class MakananKucing, kita ada class Whiskas.

Kita tau paket Whiskas warna ungu dan ada harga tertentu, maksudnya dia ada ciri-ciri yang spesifik.

Bila kita cakap makanan kucing, kadang-kadang kita tertanya-tanya, makanan kucing yang mana satu? Ada Whiskas, Friskies, tulang ayam tulang ikan pun boleh jadi makanan kucing.

Maksudnya makanan kucing ni terlalu umum.

Bila sesuatu benda terlalu umum, kita tak boleh nak tentukan ciri-ciri dia.

Whiskas --> RM 1.50, warna ungu
Makanan kucing --> ???, ???


Jadi, itulah tutorial kali ni iaitu abstract.

Cara nak buat class abstract senang saja, tambah je keyword abstract depan class, macam ni:

public abstract class MakananKucing


Bila kita letak abstract, Java takkan bagi kita guna class ni.

Kalau nak guna jugak, kita kena guna class yang extends class abstract ni, contoh Whiskas.

// yang ni akan bagi error
MakananKucing makanan = new MakananKucing();


MakananKucing makanan = new Whiskas(); // yang ni ok Whiskas makanan = new Whiskas(); // yang ni pun ok



Satu lagi kegunaan keyword abstract adalah untuk buat abstract method, sebelum ni abstract class.

Cara nak buat abstract method, tambah saje keyword abstract dekat method tu kemudian tambah semicolon(;) kat hujung, contoh:

public abstract String toString();


Method abstract bermaksud kita WAJIB tulis balik(overwrite) method tersebut dekat subclass(dalam kes ni Whiskas).

Coding penuh dua-dua class tu akan jadi macam ni:

abstract class MakananKucing


class Whiskas



Itu saja, sekian.

Tuesday, June 10, 2014

Tutorial 43 - Polymorphism (part 2)

Kita dah belajar parameter, inheritance, dan polymorphism.

Sekarang kita akan guna tiga-tiga konsep ni.

Tengok class Kucing ni:

class Kucing


Method makan() ada MakananKucing sebagai parameter.

Ni pulak class MakananKucing:

class MakananKucing


Tutorial ni kita akan tengok walaupun kita letak MakananKucing sebagai parameter, kita masih boleh letak subclass kepada MakananKucing untuk parameter tersebut.

Yang ni class Whiskas, subclass kepada MakananKucing sebab kita ada letak keyword extends:

class Whiskas extends MakananKucing


Kalau tak percaya, kita boleh test macam ni:

test polymorphic argument


Nampak kan?

Walaupun kita letak Whiskas untuk parameter MakananKucing, dia still boleh run, sebab Whiskas extends MakananKucing.


Sekian.

Monday, June 9, 2014

Tutorial 42 - Polymorphism

Katakanlah kita buat class KucingSiam dan KucingParsi, dan dua-dua class ni inherit(mewarisi) class Kucing:

class Kucing

class KucingSiam

class KucingParsi


Rujuk Tutorial Inheritance kalau tak paham.

Kalau kita nak guna class KucingSiam, kita akan buat macam ni kan:
KucingSiam kucingsaya = new KucingSiam();

Selain tu, kita boleh jugak tulis macam ni:
Kucing kucingsaya = new KucingSiam();

So, apa guna tulis macam tu?

Ok, katakanlah kita nak simpan semua kucing tu dalam satu array.

Kalau kita buat array macam ni:
KucingSiam[] kucingsaya = new KucingSiam[2];
kucingsaya[0] = new KucingSiam();
kucingsaya[1] = new KucingParsi(); // yang ni akan bagi error

kita hanya boleh letak KucingSiam saje, KucingParsi tak boleh.

Jadi, kita buat macam ni:
Kucing[] kucingsaya = new Kucing[2];
kucingsaya[0] = new KucingSiam();
kucingsaya[1] = new KucingParsi();

Sekarang kita cuba test array tersebut guna loop, macam ni:

test loop untuk polymorphism


dan kita akan nampak, bila dia jumpa KucingSiam, dia akan guna method dalam class KucingSiam, bila jumpa KucingParsi, dia guna method dalam class KucingParsi.

Dia berubah-ubah.

Itulah yang dinamakan polymorphism.

POLY(banyak)     MORPH(berubah-ubah)


Ingat Poligami, ingat Mighty Morphin Power Rangers.

gambar ustaz azhar and familygambar mighty morphin power rangers


Poligami - kawin banyak.

Power Rangers - bila diorang cakap "It's morphin time!", diorang pun bertukar jadi power rangers.


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