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

梵蒂岡之花
TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個贊
以@開始的變量是【實(shí)例變量】,實(shí)例變量屬于特定的對象。
class Person
def initialize(name, gender, age)
@name = name
@gender = gender
@age = age
end
end
上面的例子中,@name, @gender,@age都是實(shí)例變量??梢栽陬惢蜃宇惖姆椒ㄖ幸脤?shí)例變量。若引用尚未被初始化的實(shí)例變量的話,其值為nil。
【類變量】被一個類的所有實(shí)例對象共享,也可以被類方法訪問到。類變量名以‘@@’,開始,例如‘@@number’。和全局變量,實(shí)例變量不同,類變量在使用前必須初始化:
class Person
@@number = 0 #使用前必須有初值
def initialize(name, gender, age)
@name = name
@gender = gender
@age = age
@@number += 1
end
end
類變量是私有的,在類外無法直接訪問,你只能通過實(shí)例方法和類方法去訪問它。
- 1 回答
- 0 關(guān)注
- 993 瀏覽
添加回答
舉報(bào)
0/150
提交
取消