封裝:public / private / protected

閱讀時間約 2 分鐘

封裝的用意

存取控制的作用。
讓某部分方法透過包裝,限制外部的取用,不讓外部使用者或程式直接取用或呼叫。
藉此希望使用者只能夠使用某些功能、某些方法。

封裝的方法

共有三種,分別為:public, private, protected.

這三種方法的說明如下:

  • public: 完全公開的方法,內外皆可存取。
class Company
  def finance  #public狀態的方法
  end
end

  • private: 對外限制,不能有特定的receiver,故僅能在類別方法裡使用,且不能有receiver。
class Company
def finance
    money #成功
    self.money #失敗
  end

private #對外限制的私人方法
def money
end
end

Mike = Company.new
Mike.finance
Mike.money #失敗
money #失敗
Mike.send (:money) #成功  #在Mike物件上呼叫send公開方法,對Mike send money訊息
而private以下的方法皆會變成private狀態,直到遇見public。
class Company
  private
  def money
  end
  def documents
  end
  public
  def staff
  end
end
所以一般大眾寫法是先將public的方法寫在前面,後面再使用private設定其他成私人的方法。
class Company
def staff
  end
  def marketing
  end
  private
  def money
  end
  def documents
  end
end

  • protected : 對外有限制,不能有receiver,但在class裡面則可有receiver也可以沒有receiver。
class Company
  def finance
  money #成功
  self.money #成功
  end
  
  protected
  def money
  end 
end
Mike = Company.new
Mike.finance
Mike.money #失敗
通常protected不太會使用,如果會使用到protected,則代表其實是想使用private。
avatar-img
1會員
13內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
【0521盤前重點新聞】 *輝達財報發布倒數計時 那指標普刷新高 *AI相關晶片投資增加 美光上調今年資本支出預測 *輝達封裝進化台鏈沾光 面板級扇出型封裝商機 *微軟Copilot+ PC風潮 雙A搶先機
物件導向設計的一個重點就是封裝,這有很多層面上的意義,但基本上就是控制物件的成員變數和方法的存取權。物件導向的封裝還跟繼承機制有關,這使得有一些時候我們逼不得已必須把函式定義在類別上,這種做法使得物件的功能變得難以拆解。封裝應該是模組的職責,並不需要再給物件相同的能力。 一般的模組系統就是把相
Thumbnail
【封裝測試產業地圖】【封裝測試概念股】【封裝技術】【看梗圖學產業】
Thumbnail
此時,我拿出在這支在網上廣受好評的好酒-【法國拉楓莊園-桶藏特級蘇維翁紅酒】,準備好好的犒賞他一番。所謂的「娶妻娶德」應該就是這種啦!
Thumbnail
  這篇文章將介紹public函式應用,回顧保護層級、無類型兩個核心重點,再介紹遊戲製作重點程式(Script),再到控制中心Script製作與方針。
Thumbnail
在類別一節中,我們可以用Student類別的實體來存取類別中的name變數、score字典、以及其中的所有方法,這些可以被類別以外的程式碼所直接存取的屬性稱為公有屬性(public attribute)、可以被類別以外的程式碼所直接呼叫的方法稱為公有方法(public method)。
Thumbnail
因一次课业中被分配了关于性别平等的课题,我在搜寻相关资料的过程中发现了一个在我们生活环境中几乎不可见,但它确实发生在世界上某个角落的一残忍现象--- ‘荣誉处决’。 性别平等 (Gender Equality) 又称男女平等,意指男性和女性应享有公平平等的权利,在各方面如政治,经济,社会,文化和家庭
Thumbnail
2020年的德國創了一項新紀錄:眾人的儲蓄金額達到歷史新高,即將達到八兆歐元之多,其中有1500億歐元是在2020-2021年存下來的,存這麼多錢看似為了未來準備,但問題是,大概有28.5%的金額是放在儲蓄帳戶裡,在幾乎是負利率的歐洲來說,存錢不但不會有利息,還需要支付銀行手續費,這卻是德國的常態
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
【0521盤前重點新聞】 *輝達財報發布倒數計時 那指標普刷新高 *AI相關晶片投資增加 美光上調今年資本支出預測 *輝達封裝進化台鏈沾光 面板級扇出型封裝商機 *微軟Copilot+ PC風潮 雙A搶先機
物件導向設計的一個重點就是封裝,這有很多層面上的意義,但基本上就是控制物件的成員變數和方法的存取權。物件導向的封裝還跟繼承機制有關,這使得有一些時候我們逼不得已必須把函式定義在類別上,這種做法使得物件的功能變得難以拆解。封裝應該是模組的職責,並不需要再給物件相同的能力。 一般的模組系統就是把相
Thumbnail
【封裝測試產業地圖】【封裝測試概念股】【封裝技術】【看梗圖學產業】
Thumbnail
此時,我拿出在這支在網上廣受好評的好酒-【法國拉楓莊園-桶藏特級蘇維翁紅酒】,準備好好的犒賞他一番。所謂的「娶妻娶德」應該就是這種啦!
Thumbnail
  這篇文章將介紹public函式應用,回顧保護層級、無類型兩個核心重點,再介紹遊戲製作重點程式(Script),再到控制中心Script製作與方針。
Thumbnail
在類別一節中,我們可以用Student類別的實體來存取類別中的name變數、score字典、以及其中的所有方法,這些可以被類別以外的程式碼所直接存取的屬性稱為公有屬性(public attribute)、可以被類別以外的程式碼所直接呼叫的方法稱為公有方法(public method)。
Thumbnail
因一次课业中被分配了关于性别平等的课题,我在搜寻相关资料的过程中发现了一个在我们生活环境中几乎不可见,但它确实发生在世界上某个角落的一残忍现象--- ‘荣誉处决’。 性别平等 (Gender Equality) 又称男女平等,意指男性和女性应享有公平平等的权利,在各方面如政治,经济,社会,文化和家庭
Thumbnail
2020年的德國創了一項新紀錄:眾人的儲蓄金額達到歷史新高,即將達到八兆歐元之多,其中有1500億歐元是在2020-2021年存下來的,存這麼多錢看似為了未來準備,但問題是,大概有28.5%的金額是放在儲蓄帳戶裡,在幾乎是負利率的歐洲來說,存錢不但不會有利息,還需要支付銀行手續費,這卻是德國的常態