Курс языка программирования 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 просто не сработает.
Приватные атрибуты полезны для внутренних деталей, к которым остальной программе не следует обращаться напрямую.
Навигация по курсу
← Методы | Методы с параметрами →
💪 Или перейдите сразу к
упражнениям этого раздела.