初めに
プログラミングの勉強を始めて3ヶ月ほど経ちますがよく似た言葉や似たニュアンスの多い言葉がよく登場するケースによく遭遇します。例えばjavascriptで言うと関数とメソッドなど。このようなケースに遭遇した際正確な違いを特定するために2〜3時間かかる時もあります。なので初学者の方に私が今回調査した内容を共有することで「無駄な時間」を少しでも減らし、皆さんの学習の手助けに少しでもなれたらと思いこの記事を作成しています。
目次
1,メソッド、インスタンスメソッド、クラスメソッドとは??
2,3つの違いまとめ
1.メソッドとは?
パソコンに元々あるショートカットみたいなもの。
ショートカットとは?⇨1つのボタンでたくさんの処理をしてくれる機能
例えば、『おはよう』という文章を作りこの文章を削除しようとした際
パソコンのデリートキーを「4回」連続で押す必要がある。
ただショートカットだとcommand + D を1回押せば1文全て一瞬で削除できる。
.rb
def season # ⇦メソッドを作成。その中に下の季節が入っている
puts "spring"
puts"summer"
puts "fall"
puts "winter"
end
season # ↑の季節を全て呼ぶにはメソッド名で呼べる
#出力結果 spring summer fall winter
end
1.インスタンスメソッドとは?
クラスの中で定義されたメソッドをインスタンスメソッドと呼ぶ
.rb
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 クラス名.メソット名で定義する
.rb
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 クラス名.好きな名前 | クラス名.メソッド名 |