anti-keseronokan (old)
Fun Stuff for Anti-Fun People
This blog has moved to http://ikhwanhayat.net
Thursday, January 06, 2005
OOP: Operator "new"
Beberapa hari lepas ada orang tanya aku pasal apa dia "New" yg ada dalam VB.NET tu. Alang2 dah tulis elok aku letak sini lah, ramai2 boleh baca, dan insyaAllah pada yg tak tahu tu boleh ambik sedikit ilmu. Kalau yg dah tahu pulak bolehlah hantar komen betulkan mana2 yg tak betul..
Utk fahami "new" kita kena faham dulu konsep object dalam OOP.. object adalah perkara paling asas dlm OOP, kalau tak faham tak boleh jalan langsung.. ok, dlm OOP kita ada object, dan kita memperihalkan object melalui definisi class (class definition).. class definition adalah cuma melambangkan idea.. katakan kita ada class User yg dan kita susunkan dia mcm ni:
Class User {
Public id As Int;
Public name As String;
Public Sub New() {}
Public Sub New(int pid, string pname) {
id = pid;
name = pname;
}
}
ini cuma definisi, kita cuma beritahu compiler bahawa kita ada sejenis objek User yg mempunyai dua pembolehubah (variable) didalamnya iaitu id dan name (abaikan dulu dua method/function New() tu)..
Tapi, objek itu tidak wujud lagi, sebab ini baru definisi, cuma *idea* shj..
bila kita nak guna kita akan isytiharkan satu pemboleubah (variable declaration) dari jenis User ni, mcm ni:
Dim currentUser As Usertapi tidak seperti data jenis biasa (value type: mcm int, float, char), kita tak boleh terus gunakan variable dari data jenis reference (reference type; mcm class dan structure) terus walaupun kita dah istiharkannya.. kita kena instantiatekannya dahulu (taktau BM dia apa).. mcm ni..
currentUser = New User()variable declaration cuma akan bagitau compiler "hoi, aku ada satu variable jenis User nama dia currentUser".. bila lakukan instantiation pula kita akan suruh compiler utk sediakan ruang memory utk variable tu, waktu ni lah baru objek User tu betul2 wujud.. bila kita tak instantiatekan variable tadi kita akan dapat NullReferenceException (exception tu kira mcm error lah).. error ni timbul bila kita gunakan variable tapi variable tu tak diperuntukkan memory utknya.. ringkasnya, Class ialah definisi, suatu idea, tapi Object adalah satu entiti, ia wujud secara fizikal, bukan hanya idea. kita boleh juga gabungkan declaration dan instantiation secara mcm di bwh utk menyenangkan hidup:
Dim currentUser As New User()sebenarnya bila kita instantiate sesuatu objek, kita akan panggil satu method khas yg dipanggil constructor... dlm VB.NET constructor method ni kita namakan dia Sub New() (ya, yg dua ketul kat atas tu).. mcm kat atas kita ada 2 constructor, satu yg kosong yg tak ada apa2 parameter, ini dipanggil default constructor.. dan satu lagi yg ada contructor yg ada parameter.. kalau kita tak isytiharkan apa2 constructor, compiler akan pandai2 rekakan satu constructor default utk kita.. kita perlukan constructor yg kita reka sendiri bila kita nak lakukan perkara spesifik apabila variable diinstantiatekan.. contohnya constructor yg ada parameter pid dan pname tu.. bila kita gunakan mcm ni:
Dim currentUser As New User(1, "Mandy Moore")maka dgn automatiknya objek yg baru kita cipta tu ada id=1 dan name=Mandy Moore.. kalau kita gunakan default constructor kita kena buat mcm ni:
Dim currentUser As New User() currentUser.id = 1 currentUser.name = "Mandy Moore"postscriptum - Sapa2 ada contoh2 implementing MVC pattern in PHP boleh tak point it out for me. Tgh study PHP pulak. Aaiih, macam2 la ko ni! Sudah2 la belajar tu... Mana boleh, muda2 ni kena kerja keras, supaya tua nanti boleh kerja lembut..

3 Comments:
Nice Blog!
Nice template!
Best regards from Chile
Roberto
http://elmundosigueahi.blogspot.com
Wow, someone from Chile! Thanks the compliment Roberto..
It would be even nicer if you know Malay :)
huhuh..roberto carlos bg tuu..jgn memain...heheheh:P
Post a Comment
<< Home