rubyの「class内のself」と「method内のself」

gold対策(模擬試験15)。  
「class内のself」と「method内のself」を問う問題です。
通常class内はclassが、selfはインスタンスが返りますが ちょっと引っかけっぽいです。

class A
  $a = self
  def hoge
    $b = self
  end
end
$a # => A
$b # => nil # !> global variable `$b' not initialized

これ、$bはnilなんですね。 まだ評価されていないので。

A.new.hoge
$b # => #<A:0x007fd5238400d0>

とするとインスタンスが返ります。