星期一, 6月 02, 2008

[Boo]Boo(16)-Class

Boo 的類別(Class),跟 Python 很像,基本上不複雜。

class Animal:
pass

class Dog(Animal):
def constructor():
pass
def constructor( name ):
_name=name
def destructor():
pass
def Bark():
print "${_name} is barking..."
[property(Name)]
_name = "Anonymous"
spot=Dog( "spot" )
whity=Dog( Name:"whity" )
print spot.Name
whity.Bark()


class 跟 C# 一樣,可以加上 public、protected、internal、protected internal、private、abstract、final 等修飾詞,預設是 public。
繼承的話,就是在類別名稱後面加上小括號,並在括號內放置欲繼承的類別。
建構子與解構子分別是 constructor 與 destructor,可寫可不寫。
方法的宣告其實跟前面提到的函數很像,都是使用 def ,def 的前面還可以加上 abstract、static、virtual、override 等修飾詞。
最後是欄位,通常就跟寫運算式一樣,給定一個值就行了,像這樣:_name="",前面的 [property()] 是 attribute,是一個偷懶的寫法,實際上是 get/set 的組合體:

class Cat(Animal):
def constructor():
pass
def constructor( name ):
_name=name
def destructor():
pass
def Meow():
print "${_name} is meowing..."
Name as string:
get:
return _name
set:
_name=value
_name = "Anonymous"


看到這裡,你有發現到這行嗎?whity=Dog( Name:"whity" )。咦,莫非在建構時可以直接指定屬性的值,沒錯,這寫起程式來方便很多啊~

參考資料:

沒有留言: