這篇主要介紹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這個變數的,執行之後就會動態產生這個變數,使用上很有彈性。

暫時先簡單介紹到這~~

arrow
arrow
    全站熱搜

    卑微研究生 發表在 痞客邦 留言(0) 人氣()