ume

メソッド、インスタンスメソッド、クラスメソッドの違い

初めに

プログラミングの勉強を始めて3ヶ月ほど経ちますがよく似た言葉や似たニュアンスの多い言葉がよく登場するケースによく遭遇します。例えばjavascriptで言うと関数とメソッドなど。このようなケースに遭遇した際正確な違いを特定するために2〜3時間かかる時もあります。なので初学者の方に私が今回調査した内容を共有することで「無駄な時間」を少しでも減らし、皆さんの学習の手助けに少しでもなれたらと思いこの記事を作成しています。

目次

1,メソッド、インスタンスメソッド、クラスメソッドとは?? 2,3つの違いまとめ

1.メソッドとは?

パソコンに元々あるショートカットみたいなもの。 ショートカットとは?⇨1つのボタンでたくさんの処理をしてくれる機能 例えば、『おはよう』という文章を作りこの文章を削除しようとした際 パソコンのデリートキーを「4回」連続で押す必要がある。 ただショートカットだとcommand + D を1回押せば1文全て一瞬で削除できる。

 def season # ⇦メソッドを作成。その中に下の季節が入っている
   puts "spring"
   puts"summer"
   puts "fall"
   puts "winter"
 end
   season # ↑の季節を全て呼ぶにはメソッド名で呼べる 
          #出力結果 spring summer fall winter 

  end

1.インスタンスメソッドとは?

クラスの中で定義されたメソッドをインスタンスメソッドと呼ぶ

class Year
 def season # ⇦インスタンスメソッドを作成。
   puts "spring"
   puts"summer"
   puts "fall"
   puts "winter"
 end
  year = Year.new    #変数の中にクラス名.newを代入する
  year.season      #インスタンスメソッドの呼び出し 変数.メソッド名
                     #出力結果 spring summer fall winter 
  end

1.クラスメソッド

メソッドを定義する際に def クラス名.メソット名で定義する

class Year
 def Year.season # ⇦クラスメソッドを作成。
   puts "spring"
   puts"summer"
   puts "fall"
   puts "winter"
 end
  Year.season      #クラスメソッドの呼び出し クラス名.クラスメソッド名
                     #出力結果 spring summer fall winter 
  end

2、3つの違いまとめ

メソッド名 記述方法 呼び出し方
メソッド def 好きな名前 メソッド名
インスタンスメソッド クラス内でdef 好きな名前 変数=クラス名.new の後に変数.インスタンスメソッド名
クラスメソッド クラス内でdef クラス名.好きな名前 クラス名.メソッド名