Files
fz-lang/docs/ru/book/05_classes-and-objects.md
T

1.4 KiB

Классы и объекты

Класс описывается блоком с полями и методами:

class Point
{
  int x;
  int y;

  fn move(int dx, int dy)
  {
    this.x = this.x + dx;
    this.y = this.y + dy;
  }
}

Методы обращаются к полям текущего экземпляра через обязательное имя this.

Создание экземпляра

Экземпляр создаётся выражением new ClassName:

Point point = new Point;
point.x = 1;
point.y = 2;
point.move(9, 8);

Объект выделяется с количеством слотов, равным числу полей класса. Поля читаются и изменяются через точку. Поддерживаются цепочки вроде list.next.sum().

Имя класса выступает типом объекта. Переменная может содержать null, а объекты одного класса совместимы между собой. Сравнение == и != проверяет идентичность экземпляра, а не содержимое полей.

Неизвестный класс или поле приводит к ошибке компиляции.


Далее: Модель памяти

Назад: Функции и рекурсия