這篇主要介紹Ruby的一些物件導向用法,請看以下的程式碼:
class MyClass
@@num_object = 0 # class variable
def initialize(name,phone)
@name = name
@phone = phone
@count = 0
@@num_object +=1
end
def testSub
puts "this is testSub"
end
def reflex(input)
puts input
end
def showData
puts "name:" + @name
puts "phone:" + @phone
puts "目前有#{@@num_object.to_s}個實體"
return true
end
def printcount
puts @count.to_s
@count += 1
end
end
class SubClass < MyClass
attr_reader:name
attr_writer:name
attr_accessor :value
def initialize(name,phone)
super(name,phone)
end
def description
return @description
end
def description=(aWord)
@description = aWord
end
end
def initialize(name,phone) 這一段是建構子的宣告,在其它的程式語言如C++ Java都是用類別的名稱來宣告建構子,在Ruby一律都是initialize。而變數前面加一個@,代表這是類別裡的成員。另外有加@@的,就是static變數。另外「class SubClass < MyClass」表示SubClass是繼承自MyClass。
另外下面這三個則比較特別:
attr_reader:name
attr_writer:name
attr_accessor :value
這個語法是用來宣告別類的屬性,例如說:
A = SubClass.new("sholfen", "0915000000")
A.name = "Linuxer"
A.value = 700
用attr_reader這個語法宣告時,代表此變數唯讀,要修改的話就得利用attr_writer宣告變數。而attr_accessor則是動態產生的一個變數。當「A.value = 700」這一行還沒執行時,物件裡是不會有value這個變數的,執行之後就會動態產生這個變數,使用上很有彈性。
暫時先簡單介紹到這~~
留言列表