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>'
オブジェクト指向プログラミングでは、自分の中のどのメソッドを外に公開して、どのメソッドを内部でしか使わないプライベートにするか、を考えて設計していきます。
この記事が気に入ったらサポートをしてみませんか?