4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

privateメソッドとprotectedメソッド

Last updated at Posted at 2020-08-20

【概要】

1.結論

2.”private”と”protected”とは何か

3.どのように”private”と”protected”を使うのか

4.ここから学んだこと

1.結論

状況に応じて使い分けるが、ほぼprivateメソッドを使えばいい!

2.”private”と”protected”とは何か

publicは制限がないメソッドですが、private,protectedの違いがわからず悩みました。

private:
クラス外からは呼び出せない。同じインスタンス内で呼び出せる。

protected:
クラス外からは呼び出せない。同じインスタンス内で呼び出せる。しかし、他のインスタンスであれば同じクラスであれば呼び出せる。

ということですが、3.の例を見て
理解していきましょう。

3.どのように”private”と”protected”を使うのか

private
class saturday

 def  day
  holiday
 end

 private

 def holiday
  puts "今日は休日です"
 end
end

human=Human.new
human.holiday
protected
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)邪魔されたくないメソッドや、影響されたくないメソッド(インスタンス変数)を使う時にはものすごく便利なのでこれからも使いつつ、プログラムを学んでいきます!

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?