Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти
Атрибути
Порожній клас не надто корисний. Щоб об’єкт міг нести власні дані,
класу надають атрибути. Атрибут оголошують усередині класу
ключовим словом has:
class Dog {
has $.name;
has $.age;
}Кожен об’єкт класу отримує власну копію цих атрибутів. Їхні значення
ви задаєте під час створення об’єкта, передаючи їх до new
як іменовані аргументи:
class Dog {
has $.name;
has $.age;
}
my $rex = Dog.new(name => 'Rex', age => 3);$. у has $.name робить дві речі водночас:
оголошує атрибут і створює однойменний метод — аксесор, — який
повертає значення атрибута:
say $rex.name; # Rex
say $rex.age; # 3Різні об’єкти зберігають власні значення, незалежно одне від одного:
my $rex = Dog.new(name => 'Rex', age => 3);
my $fido = Dog.new(name => 'Fido', age => 5);
say $rex.name; # Rex
say $fido.name; # FidoНаступні теми показують, як зробити атрибути змінюваними та як надати їм типові значення. (Є також спосіб оголосити приватні атрибути, приховані ззовні; ми повернемося до нього, коли введемо методи.)
Теми цього розділу
Практика
Виконайте 1 тест за змістом цього розділу.
Вправи
У цьому розділі 4 вправи. Перш ніж братися до практики, вивчіть усі теми розділу.
Навігація курсом
← Розв’язання: Назвіть тип | Атрибути для читання та запису →