Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Methoden
Private Attribute
Im Abschnitt über Attribute wurde
jedes Attribut mit $. deklariert, was einen öffentlichen
Accessor erzeugt. Ein stattdessen mit $! deklariertes
Attribut ist privat: Es hat keinen Accessor und ist von
außerhalb des Objekts nicht sichtbar. Erreichbar ist es nur aus den
eigenen Methoden der Klasse, wo Sie es als $!name
ansprechen.
class Safe {
has $!code = 4321;
method unlocks($attempt) {
return $attempt == $!code;
}
}
my $safe = Safe.new;
say $safe.unlocks(4321); # True
say $safe.unlocks(1111); # FalseDer geheime $!code wird im Objekt gespeichert, aber nie
preisgegeben: Es gibt keinen Accessor .code, der einzige
Weg, mit ihm umzugehen, führt also über die Methode
unlocks, die die Klasse bewusst anbietet. Ein Versuch,
$safe.code oder $safe!code zu lesen, scheitert
schlicht.
Private Attribute sind nützlich für interne Details, die der Rest des Programms nicht unmittelbar anfassen soll.
Kursnavigation
← Methoden | Methoden mit Parametern →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.