Tracks
/
Ruby
Ruby
/
Lehrplan
/
Instanzvariablen
In

Instanzvariablen in Ruby

7 Übungen

Über Instanzvariablen

Kernpunkte:

  • Wenn die .new-Methode einer Klasse aufgerufen wird, um eine Objektinstanz zu erzeugen, werden der .initialize-Methode alle Argumente übergeben, um den Zustand der Instanz zu initialisieren.
  • Namen von Instanzvariablen beginnen mit @.
  • Instanzvariablen sind standardmäßig nil, bis sie explizit gesetzt werden.
  • Instanzvariablen sind standardmäßig privat und sollten über Getter und Setter bearbeitet werden.
class Backpack
  initialize(owner)
    @owner = owner
  end

  def owner
    @owner
  end

  def owner=(new_owner)
    @owner = new_owner
  end
end
  • Methoden mit einem abschließenden = werden von Ruby als Setter erkannt und erlauben die syntaktische „Zucker“-Schreibweise der Zuweisungssyntax, z. B. Backpack.new("Sven").owner = "Ayah". Beachte das Leerzeichen zwischen owner und =, während der eigentliche Methodenname owner= ist.
  • Getter und Setter lassen sich mit den Methoden attr_reader, attr_writer und attr_accessor erzeugen:
    • attr_reader: Erzeugt Getter für die aufgelisteten Symbole
    • attr_writer: Erzeugt Setter für die aufgelisteten Symbole
    • attr_accessor: Erzeugt Getter und Setter für die aufgelisteten Symbole
class Backpack
  attr_accessor :owner

  initialize(owner)
    @owner = owner
  end
end
  • Warum Getter und Setter verwenden statt direkt die Instanzvariable?
    • Gäbe es im vorherigen Beispiel einen Tippfehler (wir nennen das „Typo“, z. B. @ownar), würde der Code still fehlschlagen und möglicherweise einen Bug ins System bringen.
    • Getter und Setter machen das explizit und lösen einen Fehler aus, wenn ein Tippfehler gemacht wird.

Referenzen

Objektinstanzen initialisieren

Instanzvariablen

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Instanzvariablen

Das Üben ist gesperrt

Schalte 5 weitere Übungen frei, um Instanzvariablen zu üben