basyura's blog

あしたになったらほんきだす。

インスタンスの生成無しに呼べるのはなぜ?

過去の日記を検索してみたら Ruby 初めて 4 年になることが分かったけど、Ruby に関しては分からない事だらけ。

class Object
  def hello
    puts "hello from Object"
  end
end
class Class
  def hello2
    puts "hello from Class"
  end
end
class A 
end
Object.hello #=> hello from Object
Class.hello  #=> hello from Object
Class.hello2 #=> hello from Class
A.hello  #=> hello from Object
A.hello2 #=> hello from Class

なんとなく java でいう static メソッドの呼び出しになるからクラスに定義されてある static メソッドは呼び出しできない的な思考になるんだけど、よく分からない・・・。
Class と Object に定義されてあるメソッドはインスタンスメソッドと同じようにレシーバから辿って見つかったものを呼び出してる。そういうものと覚えておけばいいのかな?
分かりやすい理解の仕方がないものか。