Ruby中的類變量與類方法

    首先,我們通過一個實例來觀察類變量與類方法:

  1. class Square 
  2.   def initialize 
  3.     @@number_of_squares = define?(@@number_of_squares) ? @@number_of_squares + 1 : 1 
  4.   end 
  5.  
  6.   def self.test_method 
  7.     puts "Hello from the Square class!" 
  8.   end 
  9.  
  10.   def test_method 
  11.     puts "Hello from an instance of class Square!" 
  12. end 

    上面的代碼中,number_of_squares用來記錄類Square的實例個數,是類變量,它與對象變量的區別是,前面用兩個@符號來標記。Square類中,第一個test_method是類方法,它與對象方法的區別是,它用self.前綴標示。這裏self表示當前類,因此self.test_method定義的方法專用於該類。

    如果我們學過Java或C++,會發現類變量其實與Java或C++中的靜態變量類似,而類方法與Java或C++中的靜態方法類似。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章