#初めに
クラスメソッドとインスタンスメソッドの違いがあいまいだったのでアウトプットさせてもらいます
#クラスメソッドとは
クラスから実行できるメソッドです
クラス内で def self.メソッド名 end でクラスメソッドを定義
class Muscle
def self.muscle1
puts "大胸筋が歩いてる"
end
end
Muscle.muscle1
#実行結果
大胸筋が歩いてる
Muscle.muscleでクラス内のメソッドを呼べるのを確認しました
メソッドを class << self 〜 end で囲むと、メソッド名の先頭に self. をつけない形でクラスメソッドを作ることもできます。
class Muscle
class << self
def muscle1
puts "大胸筋が歩いてる"
end
def muscle2
puts "大胸筋が走ってる"
end
end
end
Muscle.muscle1
Muscle.muscle2
#実行結果
大胸筋が歩いてる
大胸筋が走ってる
#インスタンス変数とは
インスタンスメソッドはインスタンスから実行できるメソッド
メソッドはクラス内で def メソッド名 〜 end で定義できる。
インスタンス.メソッド名で呼び出せる
class Muscle
def muscle1
puts "大胸筋が歩いてる"
end
end
muscle = Muscle.new
muscle.muscle1
#実行結果
大胸筋が歩いてる
muscle = Muscle.new で『Muscle』クラスからインスタンスを作成し、『muscle』変数に代入しています
次に muscle.muscle1 でインス
タンスからメソッドが呼び出せることが確認できました
#まとめ
クラスメソッドは、クラスから実行できる
インスタンスメソッドは、インスタンスから実行できる
クラスメソッドは、クラス内で def self.メソッド名 〜 end
インスタンスメソッドは、クラス内で def メソッド名 〜 end