Při návrhu rozhraní třídy můžeme určit jak mnoho, a jakým způsobem má být viditelné pro okolní svět.
K dispozici máme tři úrovně ochrany metod.
veřejné metody, mohou být volány kýmkoliv. Toto je implicitní ochrana všech metod s výjimkou metody initialize
, která je vždy soukromá (private)
chráněná metoda, není pro svět viditelná. Je přístupná jen pro ostatní metody v právě definované třídě a pro metody podtříd. Tedy tříd jenž jsou v dědické linii definované třídy.
soukromé metody, nejsou viditelné pro vnější svět. FIXME: doplnit
Ruby se liší od ostatních OO jazyků v jedné důležité věci. Přístupová ochrana je zajišťována dynamicky, za běhu programu, nikoliv staticky.
Při zápisu třídy se používaji pro urční ochrany kličová slova protected
, private
a public
class Aclass def method1 ... protected def protm1 ... def protm2 ... private def privm1 ... def privm2 ... public def pubm1 ... end
Uvedený zápis je ekvivalentní zápisu
class Aclass def method1 ... def protm1 ... ... public :method1, :pubm1 protected :protm1, :protm2 private :privm1, :privm2 end