Jump to content
Sign in to follow this  
edrilKacak

Definition Of Class,sub Class,private Method Etc

Recommended Posts

ini adalah penerangan secara ringkas yang menjawab 4 keyword yang ditanyakan. Aku akan menggunakan analogy dan menjadikan kucing domestik sebagai model.

secara ringkasnya object-oriented paradigm menjadikan objek2 diluar seperti kereta, pasu dan pokok yang masing2 mempunyai attribute dan fungsinya tersendiri sebagai programming model.

[b]class[/b]

class adalah blueprint yang menjelaskan ciri2 dan fungsi yang ada pada sesuatu objek itu.

contoh kucing:

attribute: berkaki empat, berbulu, berekor
method: melompat, mengiau, menangkap tikus

attribute dan method inilah yang menjelaskan sesuatu binatang itu adalah seekor kucing. kucing yang boleh disentuh itu dipanggil object bagi class ini.

[b]subclass[/b]

class yang inherit dari class yang lain pula dipanggil subclass. Ini adalah satu feature OOP

contoh kucing:

spesis kucing juga mempunyai pelbagai baka seperti Birman, Korat dan Burmilla, tetapi ia masih mengekalkan attribute/method tertentu (berkaki empat, berbulu, mengiau, dll) sebagai kucing domestik. Kita boleh gambarkan kaitan ini seperti di bawah, dalam class Felis Catus; Birma, Korat dan Burmilla inilah yang dikatakan subclass.

[code]
Kucing(Felis Catus)
__________|___________
| | |
Birman Korat Burmilla
[/code]

[b]private method[/b]

fungsi2 ini digunakan secara dalaman, object bagi kelas itu tidak dapat memanggil fungsi2 jenis ini.

contoh kucing:

fungsi dalaman kucing seperti jantung yang mengepam darah ke seluruh badan, terselindung dari dunia luar. Kita/kucing sendiri pun tak dapat control fungsi itu.

[b]public method[/b]

fungsi2 ini boleh dipanggil oleh object bagi sesuatu kelas itu.

contoh kucing:
menangkap tikus adelah salah satu fungsi yang mampu dilaksanakan oleh kucing samaada di arahkan @ atas inisiatif sendiri.

contoh kod python yang berkaitan:

[code]
#!/usr/bin/env python2


class FelusCatus:
def __init__(self, warna):
self.warna = warna

self.__pamdarah()

def meow(self):
return "meow~"

def __pamdarah(self):
"""
fungsi: mengepam darah
"""

class Birman(FelusCatus):
country = "Burma"

class Korat(FelusCatus):
country = "Thailand"

if __name__ == "__main__":
kucing1 = Birman("oren")
kucing2 = Korat("hitam")

print "Baka Birman: ", kucing1.meow()
print "Baka Korat: ", kucing2.meow()

kucing1.__pamdarah()
[/code]

output:

[code]
Baka Birman: meow~
Baka Korat: meow~
Traceback (most recent call last):
File "./cat.py", line 36, in <module>
kucing1.__pamdarah()
AttributeError: 'Birman' object has no attribute '__pamdarah'
[/code]

sedikit penerangan:

didalam code di atas, [font="Courier New"]FelusCatus[/font] adalah sejenis class, [font="Courier New"]Birman[/font] dan [font="Courier New"]Korat[/font] juga adalah sejenis class tetapi, 2 class ini inherit class [font="Courier New"]FelusCatus[/font], maka ia dipanggil subclass. Kita dapat lihat dimana [font="Courier New"]country[/font] dan [font="Courier New"]warna[/font] adalah attribute dan [font="Courier New"]meow[/font] dan [font="Courier New"]__pamdarah[/font] adalah method bagi class ini

[font="Courier New"]meow()[/font] adalah public method bagi class2 ini, ini dapat dilihat dalam output di atas dimana tiada sebarang masalah apabila [font="Courier New"]meow()[/font] dipanggil oleh objek2 bagi class itu. namun apabila fungsi [font="Courier New"]__pamdarah()[/font] dipanggil oleh object, error telah dilontarkan, ini adalah kerana [font="Courier New"]__pamdarah()[/font] adalah private. jika kita lihat, [font="Courier New"]__pamdarah()[/font] telah dipanggil dalam function [font="Courier New"]__init__()[/font], namun tiada error dilontarkan.

ps:
dalam python, tiada spesifik keyword untuk menjadikan sesuatu fuction itu private, tetapi meletakkan __ dihadapan sesuatu function akan menjadikan ia private (sebenarnya python mengubah nama function itu menjadi nama lain)

sekian sahaja penerangan yang mungkin menambah kefahaman atau menambahkan lagi kekonfiusan atau tiada memberi apa2 kesan :unsure:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...