ITP2 - OOP Tutorials - Inheritance - Private, P...

So what is it good for if we can't call it? private methods are only
accessible from other methods in the class. For example, given the above
code, the following would be allowed:

def public_disclosure
  "#{self.name} in human years is #{human_years}"
end

Note that in this case, we can not use self.human_years, because the
human_years method is private. Remember that self.human_years is
equivalent to sparky.human_years, which is not allowed for private
methods. Therefore, we have to just use human_years. In summary, private
methods are not accessible outside of the class definition at all, and
are only accessible from inside the class when called without self.