Классы данных и перечисления

Классы данных и перечисления #

Классы данных #

Презентацию по теме можно посмотреть по ссылке

Видео-запись: Rutube

Классы-перечисления #

Презентацию по теме можно посмотреть по ссылке

Видео-запись: Rutube

Документация по теме #

Задание № 1: Треугольник — класс данных #

Измените класс Triangle из занятия 4 так, чтобы он стал классом данных (data class):

  • пометьте класс модификатором data;
  • сделайте поля класса неизменяемыми (val);
  • сделайте поля класса доступными на чтение: замените private val на val. Ограничение занятия 4 о недоступности сторон извне класса на этом этапе снимается: свойства должны быть видимы, чтобы сгенерированные toString(), equals(), hashCode() и copy() были осмысленными.

Переопределённый на занятии 4 метод toString() сохраните: явное переопределение в теле класса имеет приоритет над генерируемым компилятором, поэтому формат вывода "5.00 4.00 3.00" не изменится.

Проверьте, что приложение продолжило корректно выполнять свои задачи

Задание № 2: Редактирование путём копирования #

  1. Создайте треугольник со сторонами 3, 4 и 5
  2. Создайте копию треугольника с помощью copy(), заменив длину второй стороны (sideB) на 5
  3. Удостоверьтесь, что оригинальный объект треугольника не изменил своего состояния: сравните оригинальный объект с результатом copy() без аргументов с помощью оператора == (для класса данных он использует генерируемый equals())

Задание № 3. Добавление цветов заливки и границы #

  1. Создайте класс-перечисление Color.
    1. Определите класс в отдельном файле.
    2. Добавьте дополнительное поле перечисления — название на русском языке, например description. Обратите внимание: называть это поле name нельзя — у каждой константы уже есть стандартное свойство name с именем константы, переопределить его невозможно.
    3. Укажите в качестве возможных значений перечисления все цвета радуги, также чёрный и белый.
  2. Добавьте в класс треугольник два новых поля — цвет заливки и цвет границы.
  3. Реализуйте функцию, которая отфильтрует список треугольников по указанному цвету заливки. Входные параметры функции: список треугольников и цвет. Результат работы функции: список треугольников, у которых цвет заливки совпадает с указанным. Используйте filter() (см. занятие 2).

Задание № 4. Перечисление типов треугольников #

  1. Создайте класс-перечисление TriangleType (тип треугольника).
  2. Данные констант класса — название на русском языке (поле description, как в задании № 3).
  3. Заполните список констант типов треугольника: некорректный, отрезок, остроугольный, прямоугольный, тупоугольный.
  4. Переработайте функцию Triangle.type() и свойство-расширение Triangle.typeName из занятия 4 так, чтобы они возвращали константу из соответствующего перечисления, а не строку. Вывод приложения сохраните прежним: вместо строки печатайте русское название константы, например type().description.

© A. M. Васильев, 2026, CC BY-SA 4.0, andrey@crafted.su