濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Ruby中的public、private、protected區(qū)別小結(jié)

Ruby中的public、private、protected區(qū)別小結(jié)

熱門(mén)標(biāo)簽:中牟外呼系統(tǒng)違法嗎 巫師3地圖標(biāo)注魔力之所 漯河電銷(xiāo) 柯城手機(jī)地圖如何做地圖標(biāo)注 外呼線路從哪里出來(lái)的 征服者企業(yè)地圖標(biāo)注 AI電銷(xiāo)機(jī)器人 線路 淮安自動(dòng)外呼系統(tǒng)供應(yīng)商 天津外呼系統(tǒng)怎么收費(fèi)

重點(diǎn)關(guān)注private與protected

public

默認(rèn)即為public,全局都可以訪問(wèn),這個(gè)不解釋

private

C++, “private” 意為 “private to this class”, 但是Ruby中意為 “private to this instance”.
意思是:C++中,對(duì)于類(lèi)A,只要能訪問(wèn)類(lèi)A,就能訪問(wèn)A的對(duì)象的private方法。
Ruby中,卻不行:你只能在你本對(duì)象的實(shí)例中訪問(wèn)本對(duì)象的private方法。
因?yàn)镽uby的原則是“private意為你不能指定方法接收者”,接收者只能是self,且self必須省略!
所以Ruby中子類(lèi)可以訪問(wèn)父類(lèi)的private方法。但self.private_method是錯(cuò)的。

protected

可以在本類(lèi)或子類(lèi)中訪問(wèn),不能在其它類(lèi)中訪問(wèn)。

測(cè)試代碼(public均可訪問(wèn),代碼略)

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"
 end
end
 
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
 end
end
 
class C
 def test
  a = A.new
  #a.protected_mth     #wrong
  #a.private_mth      #wrong
 end
end
 
A.new.test
B.new.test
C.new.test


注:ruby的訪問(wèn)控制不同于java,沒(méi)有包的區(qū)別。
其它包中的類(lèi)只要引用目標(biāo)類(lèi),和目標(biāo)類(lèi)同包下類(lèi)訪問(wèn)控制規(guī)則相同。

您可能感興趣的文章:
  • asp.net 修飾符介紹(關(guān)于public、private、protected、internal)
  • 深入理解C++中public、protected及private用法
  • C++中的三種繼承public,protected,private詳細(xì)解析
  • 淺析php面向?qū)ο髉ublic private protected 訪問(wèn)修飾符
  • JS中的public和private對(duì)象,即static修飾符
  • C++友元(Friend)用法實(shí)例簡(jiǎn)介
  • C++中的friend友元函數(shù)詳細(xì)解析
  • 概述C++中的 public protected private friend關(guān)鍵字的用法

標(biāo)簽:大慶 棗莊 河池 克拉瑪依 西雙版納 甘孜 南昌 內(nèi)江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ruby中的public、private、protected區(qū)別小結(jié)》,本文關(guān)鍵詞  Ruby,中的,public,private,protected,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ruby中的public、private、protected區(qū)別小結(jié)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Ruby中的public、private、protected區(qū)別小結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    阳高县| 新兴县| 饶河县| 南丰县| 崇阳县| 五莲县| 梨树县| 林西县| 正蓝旗| 祥云县| 泾源县| 永春县| 马公市| 抚松县| 宣恩县| 河间市| 铜山县| 托克逊县| 天全县| 永平县| 湟中县| 沾化县| 陈巴尔虎旗| 辽宁省| 百色市| 南宫市| 郓城县| 石柱| 庄河市| 郁南县| 岳阳县| 拜泉县| 隆安县| 邯郸市| 泸西县| 美姑县| 邛崃市| 桂东县| 阳山县| 西宁市| 巴彦淖尔市|