Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Классы и объекты

Методы

Атрибуты дают объекту данные; методы дают ему поведение. Метод — это подпрограмма, которая принадлежит классу и вызывается у объекта. Объявляется он ключевым словом method:

class Dog {
    has $.name;

    method bark {
        return $.name ~ ' says Woof!';
    }
}

Метод вызывается у объекта через точку, точно так же, как аксессор:

my $rex = Dog.new(name => 'Rex');
say $rex.bark; # Rex says Woof!

Внутри метода объект, у которого метод был вызван, доступен как self. К атрибутам обращаются через их аксессоры, записываемые как $.name, $.age и так далее. Они работают и в интерполируемых строках:

class Dog {
    has $.name;

    method greet {
        "Hello, my name is $.name";
    }
}

say Dog.new(name => 'Rex').greet; # Hello, my name is Rex

Следующие темы посвящены приватным атрибутам (теперь, когда у нас есть методы, чтобы ими пользоваться), методам с параметрами и методам, вызывающим другие методы.

Темы этого раздела

Практика

Пройдите 1 тест по содержанию этого раздела.

Упражнения

В этом разделе 4 упражнения. Прежде чем приступать к практике, изучите все темы раздела.

  1. Шагающий робот
  2. Перевёрнутое слово
  3. Площадь прямоугольника
  4. Перевод температуры

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

Решение: Изменяемая метка   |   Приватные атрибуты