31.1. Viditelnost metod

Řízení přístupu k metodám objektu Access Control

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.

public *wordasword*

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)

protected

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.

private

soukromé metody, nejsou viditelné pro vnější svět. FIXME: doplnit

Poznámka

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

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .