Курс по 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 просто се проваля.

Частните атрибути са полезни за вътрешни подробности, до които останалата част от програмата не бива да посяга пряко.

Навигация в курса

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


💪 Или преминете направо към упражненията в този раздел.