封裝: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。
1會員
13內容數
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
【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
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
【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%的金額是放在儲蓄帳戶裡,在幾乎是負利率的歐洲來說,存錢不但不會有利息,還需要支付銀行手續費,這卻是德國的常態