類變量被類的所有對象所共享,它與類方法相關聯。對一個給定的類來說,類變量只存在一份拷貝,相當於C++類中的靜態變量(關鍵詞:@@&static)。類變量由兩個@符開頭,例如@@count。與全局變量和實例變量不同,類變量在使用之前必須被初始化。通常,初始化就是在類定義中的簡單賦值。
舉一例子:
- class Apple
- @@number = 0 # 蘋果個數
- def initialize(color)
- @color = color
- @number = 0
- end
- def add
- @number += 1
- @@number += 1
- puts "This type apple: #@umber. All type apple: #@@number"
- end
- end
測試代碼:
- redApple = Apple.new("red")
- greenApple = Apple.new("green")
- redApple.add
- greenApple.add
- redApple.add
- redApple.add
測試結果: