ruby中類變數與例項變數

2021-07-02 04:02:28 字數 575 閱讀 3879

以@開始的變數是【例項變數】,例項變數屬於特定的物件。

class person

def initialize(name, gender, age)

@name = name

@gender = gender

@age = age

endend

上面的例子中,@name,@gender,@age都是例項變數。可以在類或子類的方法中引用例項變數。若引用尚未被初始化的例項變數的話,其值為nil。

【類變數】被乙個類的所有例項物件共享,也可以被類方法訪問到。類變數名以『@@』,開始,例如『@@number』。和全域性變數,例項變數不同,類變數在使用前必須初始化:

class person

@@number = 0 #使用前必須有初值

def initialize(name, gender, age)

@name = name

@gender = gender

@age = age

@@number += 1

endend

類變數是私有的,在類外無法直接訪問,你只能通過例項方法和類方法去訪問它。

類變數與例項變數

定義乙個英雄類,包含玩家數量,生命值,攻擊力和玩家姓名,同時包含乙個方法攻擊方法,呼叫攻擊方法時顯示如圖資訊,建構函式中需要初始化資料,當玩家加入遊戲後需要顯示玩家姓名和數量 class hero count 0 類變數 def init self 例項變數 self.hp 0 self.attac...

類變數與例項變數

初始 如下class dog num legs 4 類變數 def init self,name self.name name 例項變數一 訪問變數 jack dog jack rose dog rose jack.name,rose.name jack rose jack.num legs,ros...

例項變數與類變數

例項變數與類變數 類變數也叫靜態變數,也就是在變數前加了static 的變數 例項變數也叫物件變數,即沒加static 的變數 區別在於 類變數和例項變數的區別在於 類變數是所有物件共有,其中乙個物件將它值改變,其他物件得到的就是改變後的結果 而例項變數則屬物件私有,某乙個物件將其值改變,不影響其他...