Ruby中實例變量與類變量有什么區(qū)別?
1 回答

莫回無
TA貢獻1865條經(jīng)驗 獲得超7個贊
以@開始的變量是【實例變量】,實例變量屬于特定的對象。
class Person
def initialize(name, gender, age)
@name = name
@gender = gender
@age = age
end
end
上面的例子中,@name, @gender,@age都是實例變量。可以在類或子類的方法中引用實例變量。若引用尚未被初始化的實例變量的話,其值為nil。
【類變量】被一個類的所有實例對象共享,也可以被類方法訪問到。類變量名以‘@@’,開始,例如‘@@number’。和全局變量,實例變量不同,類變量在使用前必須初始化:
class Person
@@number = 0 #使用前必須有初值
def initialize(name, gender, age)
@name = name
@gender = gender
@age = age
@@number += 1
end
end
類變量是私有的,在類外無法直接訪問,你只能通過實例方法和類方法去訪問它。
- 1 回答
- 0 關(guān)注
- 743 瀏覽
添加回答
舉報
0/150
提交
取消