Данный способ записи не нарушает читабельность кода, но при этом мы сразу же понимаем, что теперь у нас есть класс, который содержит два значения типа double с именами x и y, к которым мы можем получить доступ, используя стандартные имена методов доступа getX и getY.
Давайте рассмотрим некоторые детали Записей.
Начнем с того, что Записи — это новый вид типа, который представляет собой ограниченную форму класса так же, как и перечисление. Запись имеет имя и описание состояния, которое определяет компоненты записи. В приведенном выше примере Point описание состояния — это x и y. Записи предназначены для упрощения, поэтому они не могут расширять какой-либо другой класс или определять дополнительные переменные экземпляра. Всё состояние в записи является final, поэтому методы доступа (сеттеры) не предоставляются. Если они вам необходимы, то используйте привычную запись класса.
В то же время, у Записей действительно есть некоторая гибкость.
Часто, помимо простого присваивания значений, конструктор должен обеспечивать дополнительное поведение. В таком случае мы можем предоставить альтернативную реализацию конструктора: