Курс 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 просто зазнає невдачі.

Приватні атрибути корисні для внутрішніх подробиць, яких решта програми не має торкатися напряму.

Навігація курсом

Методи   |   Методи з параметрами


💪 Або перейдіть одразу до вправ цього розділу.