Data классы

В этой главе мы узнаем о классах данных Kotlin. Класс данных Kotlin используется только для хранения данных и не предоставляет никаких других функций, кроме хранения данных.

Существуют следующие условия для того, чтобы класс Kotlin был определен как класс данных:

  • Первичный конструктор должен иметь хотя бы один параметр.
  • Все основные параметры конструктора должны быть помечены как val или var.
  • Классы данных не могут быть абстрактными, открытыми, закрытыми или внутренними.
  • Класс может расширять другие классы или реализовывать интерфейсы. Если вы используете версию Kotlin до 1.1, класс может реализовывать только интерфейсы.

Определить класс данных Kotlin просто. Если класс помечен ключевым словом data, то он становится классом данных. Например:

Когда вы объявляете класс данных, компилятор автоматически генерирует функции Constructor, toString(), equals(), hashCode() и дополнительные функции copy() и componentN(). Класс данных создается так же, как и другие классы Kotlin:

Функция Copy

Функция copy() создается автоматически, когда мы определяем класс данных в Kotlin. Эту функцию копирования можно использовать для копирования объекта, изменения некоторых его свойств, но сохраняя остальное неизменным. Ниже приведен пример:

Функция toString

Функция toString() также создается автоматически, когда мы определяем класс данных Kotlin. Эта функция возвращает строковое представление объекта. Ниже приведен пример:

Функции hashCode() и equals()

Функция hasCode() возвращает хэш-код для объекта. Если два объекта равны, hashCode() возвращает одно и то же целочисленное значение для объектов.

Функция equals() возвращает true , если два объекта равны или имеют одинаковое значение hasCode, в противном случае возвращает false . Ниже приведен пример:

Разрушение объявлений

Мы можем разрушить объект data class на несколько переменных, используя объявление деструкции. Например:

Поделись с друзьями:
Если вам понравилась статья, подписывайтесь на наши социальные сети.

Оставьте комментарий

4 × 1 =