1
0

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.

[ruby]クラスメソッドとインスタンスメソッドの違い

Last updated at Posted at 2021-02-03

#初めに
クラスメソッドとインスタンスメソッドの違いがあいまいだったのでアウトプットさせてもらいます

#クラスメソッドとは
クラスから実行できるメソッドです
クラス内で 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

1
0
1

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?