>>407
すごい大雑把に説明すると、

クラスは鯛焼きプレートでインスタンスは鯛焼き。

def self.foo と定義したものはクラスメソッド。
def bar と定義したものはインスタンスメソッド。

インスタンスメソッドはインスタンスがないと (Hoge.new しないと) 実行できない。
クラスメソッドはクラスが定義されていれば実行できる。インスタンスは不要。

インスタンスメソッドからクラスメソッドを呼ぶのは可能。
def bar
self.class.foo
end

クラスメソッドからインスタンスメソッドを呼ぶには new しないとだめ。

あちこちに self が出てきて分からなくなってきたら p self として確認すればいいんじゃね。