Курс 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 просто зазнає невдачі.
Приватні атрибути корисні для внутрішніх подробиць, яких решта програми не має торкатися напряму.
Навігація курсом
← Методи | Методи з параметрами →
💪 Або перейдіть одразу до
вправ цього розділу.