見出し画像

#201 Ruby Module#private

こんばんは、hiroです🙇‍♂️

本日、2回目のワクチン接種を行いました。
今のところ熱の副作用はなく、肩が筋肉痛程度で済んでいます😋
1回目もそうでしたが、副作用に苦しまないのは得した気分ですw
間違ってインフルエンザのワクチン接種してんのかな?w

ということで、本日もアウトプットを始めたいと思います!


Module#private

メソッドをprivateに設定する。
デフォルトでは、def式がクラス定義の外にある。変更可能。
アクセス修飾子の一つ。クラス外からはアクセスできない。クラスの中から呼び出される形でのみ使用することができる。

<引数なしの場合>
今後このクラスまたはモジュール定義内で新規に定義されるメソッドを関数形式でだけ呼び出せるように設定する。
<引数ありの場合>
引数によって指定されたメソッドをprivateに設定する。


呼び出し制限

メソッドはpublic、private、protectedの三通りの呼び出し制限を持つ。
<public>
制限なしに呼び出せる。
def式がクラス定義の中にある。
<protected>
そのメソッドを持つオブジェクトがselfであるコンテキスト(メソッド定義やinstance_eval)でのみ呼び出せる。


Privateの必要性

あるクラスの変数やメソッドを他のオブジェクトから呼び出せないようにする(カプセル化の考え方)ため。
必要のない変更・閲覧操作(例:銀行口座インスタンスの残高を外部から自由に書き換えする。あるユーザーがSNSで他ユーザーのパスワードを見ることができる)


以上となります。

本日も最後まで読んでいただき、ありがとうございました🙇‍♂️


参考文献
code ship >【今日のQ&A】privateの用途・メリット【アクセス修飾子】
https://code-ship-blog.wemotion.co.jp/

この記事が気に入ったらサポートをしてみませんか?