Ruby的類成員作用域與self

2021-04-26 07:57:43 字數 661 閱讀 7636

請考慮一下**

class test

private

def self.test

puts 'arst'

enddef test

puts 'arst'

endclass << self

def test2

puts 'arst'

endprivate

def test3

puts 'arst'

endend

endtest.test

test.test2

begin

test.test3

rescue standarderror => e

p eend

begin

test.new.test

rescue standarderror => e

p eend

結果為

arst

arst

##>

類方法test.test是不受作用域修飾符private影響的,可能原因在於self.的宣告方式其實只是class<的語法糖。

作用域與成員函式

作用域與成員函式 在基類和派生類中使用同一名字的成員函式,其行為與資料成員一樣 在派生類作用域中派生類成員將遮蔽基類成員。即使函式原型不同,基類成員也會被遮蔽。class base class child public base child c child cout 區域性作用域中宣告的函式不會過載...

原創 Javascript類成員的作用域

一 類的私有方法中訪問類屬性 1 私有方法訪問私有變數 這種訪問沒有什麼限制,因為都是私有,作用域相同。function class1 showname 2 私有方法訪問類普通屬性 function class1 showname 可以看到在類中定義了乙個 this變數,其表示每個新建立的物件的例項...

類的作用域

更多c 類的基本概念 每個類都會定義它自己的作用域。在類的作用域外,普通的資料和函式成員只能由物件 引用或者指標使用成員訪問運算子來訪問。對於類型別成員則使用作用域運算子訪問。不論哪種情況,跟在運算子之後的名字都必須是對應類的成員。作用域和定義在類外部的成員 乙個類就是乙個作用域很好地解釋為什麼當我...