概要
Rubyのアクセス制御について説明します。
内容
Rubyのアクセス制御には以下の3種類があります。
名称 | 内容 |
---|---|
public | インスタンスメソッドとして利用可能 ※記述を省略した場合はpublic扱い |
protected | クラス内でメソッドを利用可能+インスタンス内ではインスタンスメソッドとして利用可能 |
private | クラス内でメソッドを利用可能 |
構文1
各メソッド1つに対してアクセス制御を設定する場合
def method_name;expression;end access_level:method_name # => access_level = public,protected,private
構文2
該当箇所以下の全てに対してアクセス制御を設定する場合
access_level # => access_level = public,protected,private def method_name1;expression;end def method_name2;expression;end
構文1サンプル
class AccessControlSample def private_sample puts "private" end private:private_sample def protected_sample puts "protected" end protected:protected_sample def public_sample puts "public" self.protected_sample private_sample end public:public_sample end access_control_sample = AccessControlSample.new access_control_sample.public_sample
構文2サンプル
class AccessControlSample def public_sample puts "public" private_sample1 private_sample2 end private # ここから下のメソッドは全てprivateになる def private_sample1 puts "private1" end def private_sample2 puts "private2" end end access_control_sample = AccessControlSample.new access_control_sample.public_sample