I'm learning Ruby, and have come up to a point where I am confused.
The book I am using is talking about private
, public
, and protected methods
, but I am still a bit confused. What are the differences between each?
Public - can be called from anywhere
Private - The method cannot be called outside class scope. The object can only send the message to itself
ex: the baker has bake
method as public but break_eggs
is private
Protected - You can call an object's protected methods as long as the default object self
is an instance of the same class as the object whose method you're calling
ex: with n
protected method, c1
can ask c2
to execute c2.n
, because c1
and c2
are both instances of the same class
And last but not least:
if "class D < C", then D will exhibit the same access behaviour as instances of C
reference: http://www.amazon.com/Ruby-Rails-Techniques-Developers/dp/1932394699