麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Ruby > 正文

Ruby中的public、private、protected區別小結

2020-10-29 19:44:14
字體:
來源:轉載
供稿:網友

重點關注private與protected

public

默認即為public,全局都可以訪問,這個不解釋

private

C++, “private” 意為 “private to this class”, 但是Ruby中意為 “private to this instance”.
意思是:C++中,對于類A,只要能訪問類A,就能訪問A的對象的private方法。
Ruby中,卻不行:你只能在你本對象的實例中訪問本對象的private方法。
因為Ruby的原則是“private意為你不能指定方法接收者”,接收者只能是self,且self必須省略!
所以Ruby中子類可以訪問父類的private方法。但self.private_method是錯的。

protected

可以在本類或子類中訪問,不能在其它類中訪問。

測試代碼(public均可訪問,代碼略)

class A def test  protected_mth  private_mth   self.protected_mth  #self.private_mth   #wrong   obj = B.new  obj.protected_mth  #obj.private_mth    #wrong end  protected def protected_mth  puts "#{self.class}-protected" end  private def private_mth  puts "#{self.class}-private" endend class B < A def test  protected_mth  private_mth   self.protected_mth  #self.private_mth   #wrong   obj = B.new  obj.protected_mth  #obj.private_mth    #wrong endend class C def test  a = A.new  #a.protected_mth     #wrong  #a.private_mth      #wrong endend A.new.testB.new.testC.new.test


注:ruby的訪問控制不同于java,沒有包的區別。
其它包中的類只要引用目標類,和目標類同包下類訪問控制規則相同。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产日韩在线观看一区 | hdhdhd69ⅹxxx黑人| 日韩视频―中文字幕 | 国产精品一区二区三区在线看 | 久久久久久久久久久久久久av | 成人国产精品一区 | av中文在线观看 | 一级电影免费在线观看 | wwwav国产 | 羞羞网站视频 | 日韩欧美高清片 | 高清在线国产 | 国产精品一区免费在线观看 | 免费毛片播放 | 黄色网址你懂的 | 2021国产精品 | www.7777在线| 在线观看中文字幕av | 最新中文字幕日本 | 91一区二区在线观看 | 老师你怎么会在这第2季出现 | 一级黄色淫片 | 91精彩在线 | 久久综合九色综合久久久精品综合 | 久久一本日日摸夜夜添 | 久久91精品国产91久久yfo | 手机国产乱子伦精品视频 | 最新中文字幕日本 | 欧美成人免费看 | 无码专区aaaaaa免费视频 | 黑人操穴| 国产午夜网 | 美女在线观看视频一区二区 | 中文字幕在线观看精品 | 国产一区二区三区视频免费 | 欧美成人精品一级 | 色综av| 激情网站免费观看 | 欧美成人黄色小视频 | 色综合视频网 | 99麻豆久久久国产精品免费 |