1.4 KiB
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, а объекты одного класса совместимы между собой.
Сравнение == и != проверяет идентичность экземпляра, а не содержимое полей.
Неизвестный класс или поле приводит к ошибке компиляции.
Далее: Модель памяти
Назад: Функции и рекурсия