LoginSignup
1
1

More than 5 years have passed since last update.

クラスメソッドとインスタンスメソッド

Last updated at Posted at 2017-02-05

クラスメソッドとインスタンスメソッドの意味や書き方を整理してみた。

クラスメソッドは、クラスオブジェクトから呼び出せるメソッド。
インスタンスメソッドは、インスタンスオブジェクトから呼び出せるメソッド。

インスタンスメソッドは、クラスの中に、メソッドの定義『 def メソッド名 〜 end 』と表記することで定義できる。
クラスメソッドは、『 class << クラス名 〜 end 』の中にメソッドの定義をすることなので、定義できる。

例えば、Fooクラスのインスタンスメソッドは以下のように書ける。

class Foo
  def foo
    puts "instance methood"
  end 
end
Foo.new.foo # instance methood

また、Fooクラスのクラスメソッドは以下のように書ける。

class Foo
  class << self
    def foo
      puts "class method"
    end
  end
end
Foo.foo # class method

class Boo
  def self.boo
    puts "class method"
  end
end
Boo.boo # class method

クラス内でselfはクラス名を意味するので、
上記のクラスメソッドは、『 class << Foo 〜 end 』、『 def Boo.boo 〜 end 』
と同じ意味になる。

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