【概要】
1.結論
2.”private”と”protected”とは何か
3.どのように”private”と”protected”を使うのか
4.ここから学んだこと
1.結論
状況に応じて使い分けるが、ほぼprivateメソッドを使えばいい!
2.”private”と”protected”とは何か
publicは制限がないメソッドですが、private,protectedの違いがわからず悩みました。
private:
クラス外からは呼び出せない。同じインスタンス内で呼び出せる。
protected:
クラス外からは呼び出せない。同じインスタンス内で呼び出せる。しかし、他のインスタンスであれば同じクラスであれば呼び出せる。
ということですが、3.の例を見て
理解していきましょう。
3.どのように”private”と”protected”を使うのか
class saturday
def day
holiday
end
private
def holiday
puts "今日は休日です"
end
end
human=Human.new
human.holiday
class school
def class (student)
@student = student
end
def brother(human)
puts "#{class_brother}と#{human.class_brother}は兄弟です。"
end
end
protected
def class_brother
@student
end
studentA=Student.new
studentA.school("桜木")
studentB=Student.new
studentB.school("山田")
studentA.brother("山田 ")
もちろんprivateのプログラムでも、
protectedが適用できます!
ただ、protectedの方は、同じクラス内でも
違うメソッド(他のインスタンスであれば同じクラスであれば呼び出せる)のため、protectedのみでしか適用できません。
4.ここから学んだこと
i)privateは使用頻度が高いと思いますが、protectedは使う範囲・頻度が限られそうです。
ii)邪魔されたくないメソッドや、影響されたくないメソッド(インスタンス変数)を使う時にはものすごく便利なのでこれからも使いつつ、プログラムを学んでいきます!