Self i metody prywatne

Powiedzmy mamy taki fragment kodu:

[code]class Foo
def method
bar
self.bar
end

private
def bar
puts “Hello”
end
end

Foo.new.method[/code]
Wynik programu:

Hello cos.rb:4:in `method': private method `bar' called for #<Foo:0x7fb6a005a498> (NoMethodError) from cos.rb:13
czemu przy self.bar wywala mi błąd, że odwołuję się do metody prywatnej, a bez self działa? Zawsze myślałem, że self to taki odpowiednik this (choć z małymi różnicami) i zapis self.bar i bar jest tożsamy.

edit:
Czyniąc metodę prywatną, deklarujesz że tylko obiekt klasy Foo może wywoływać takową metodę. Metody prywatne wywołuje się bez wskazywania obiektu na którym mają być wywołane.