Курс по Raku / Обекти, вход-изход и изключения / Класове и обекти / Методи
Частни атрибути
В раздела за атрибутите всеки
атрибут беше деклариран с $., което създава публичен
аксесор. Атрибут, деклариран вместо това с $!, е
частен: той няма аксесор и не се вижда отвън. Достъпен е само
от собствените методи на класа, където се обръщате към него като
$!name.
class Safe {
has $!code = 4321;
method unlocks($attempt) {
return $attempt == $!code;
}
}
my $safe = Safe.new;
say $safe.unlocks(4321); # True
say $safe.unlocks(1111); # FalseТайният $!code се съхранява вътре в обекта, но никога не
се излага навън: няма аксесор .code, така че единственият
начин да си взаимодействате с него е през метода unlocks,
който класът е решил да предостави. Опит да се прочете
$safe.code или $safe!code просто се
проваля.
Частните атрибути са полезни за вътрешни подробности, до които останалата част от програмата не бива да посяга пряко.
Навигация в курса
← Методи | Методи с параметри →
💪 Или преминете направо към упражненията в този раздел.