らぼらとり

koutya07の日記、備忘録

Rubyメモ Objectの正体について

Object#instance_variablesで確認できる
メソッドの呼び出し時にはじめて出現する

  • メソッドについて

Object#methodsで確認できる
メソッドはオブジェクトではなくクラスに属している

  • クラスについて

クラスもオブジェクト
Classクラスもインスタンスメソッドを持っている #=>[:allocate, :new, :superclass]
ClassクラスのスーパークラスはModule

  • 継承チェーンについて

ひとつ右へ(class)、それから上へ(superclass)
Object#ancestorsでBasicObjectまでの継承チェーンを確認できる

  • レシーバとselfについて

メソッドを呼び出すたびに、レシーバがselfにセットされる
モジュールやクラスを定義するときはそのモジュールがselfになる
レシーバを指定せずにメソッドを呼び出すとselfのメソッドだとみなされる