rubyオブジェクト指向(6)公開レベル

クラスのなかで定義されたメソッドの外部からのアクセスを制限することができます。

public:どこからでもアクセス可能
private:定義されたクラス内でのみアクセス可能 
protected:定義されたクラス内、あるいはそのクラスを継承した子クラスからのみアクセス可能

例えば、

class Hoge
  def hoge # 通常はデフォルトでpublicになる
    puts "hoge"
  end
  private # これ以降はプライベートメソッドでこのクラスの外では呼べない
  def hogehoge
    puts "hogehoge"
  end
end
h = Hoge.new
h.hoge
h.hogehoge
NoMethodError: private method `hogehoge' called for #<Hoge:0x007f81e481e878>
	from (irb):304
	from /usr/bin/irb:11:in `<main>'

オブジェクト指向プログラミングでは、自分の中のどのメソッドを外に公開して、どのメソッドを内部でしか使わないプライベートにするか、を考えて設計していきます。

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