next up previous contents index
Next: Objekte und Singleton-Methoden Up: Besonderheiten bei def Previous: Rückgabewerte   Contents   Index


Sichtbarkeitsbegrenzer

Durch das Vorstellen von public, private oder protected kann man ähnlich wie in anderen Sprachen die Sichtbarkeit von Methoden regeln.

class A
  private
    def priv; puts "private"; end
  protected
    def prot; puts "protected"; end
  public
    def publ; puts "public"; end

  def a_priv; priv; end
  def a_prot; prot; end
  def a_publ; publ; end
  def a_fail; self.priv; end  # expl. Empfänger
end

a = A.new
a.a_priv  #-> private
a.a_prot  #-> protected
a.a_publ  #-> public
a.a_fail  #-> NameError

a.priv      #-> NameError
a.prot      #-> NameError
a.publ      #-> public

class B < A
  def b_priv; priv; end  # priv ist private in A
  def b_prot; prot; end
  def b_publ; publ; end
end

b = B.new
b.b_priv  #-> private
b.b_prot  #-> protected
b.b_publ  #-> public

Die Zugriffsrechte werden in Ruby dynamisch vergeben und können während der Laufzeit verändert werden.


next up previous contents index
Next: Objekte und Singleton-Methoden Up: Besonderheiten bei def Previous: Rückgabewerte   Contents   Index
Armin Roehrl, Stefan Schmiedl und Clemens Wyss 2002-01-16