Классы данных и перечисления #
Классы данных #
Презентацию по теме можно посмотреть по ссылке
Видео-запись: 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: Редактирование путём копирования #
- Создайте треугольник со сторонами 3, 4 и 5
- Создайте копию треугольника с помощью
copy(), заменив длину второй стороны (sideB) на 5 - Удостоверьтесь, что оригинальный объект треугольника не изменил своего
состояния: сравните оригинальный объект с результатом
copy()без аргументов с помощью оператора==(для класса данных он использует генерируемыйequals())
Задание № 3. Добавление цветов заливки и границы #
- Создайте класс-перечисление
Color.- Определите класс в отдельном файле.
- Добавьте дополнительное поле перечисления — название на русском языке,
например
description. Обратите внимание: называть это полеnameнельзя — у каждой константы уже есть стандартное свойствоnameс именем константы, переопределить его невозможно. - Укажите в качестве возможных значений перечисления все цвета радуги, также чёрный и белый.
- Добавьте в класс треугольник два новых поля — цвет заливки и цвет границы.
- Реализуйте функцию, которая отфильтрует список треугольников по
указанному цвету заливки. Входные параметры функции: список
треугольников и цвет. Результат работы функции: список треугольников,
у которых цвет заливки совпадает с указанным. Используйте
filter()(см. занятие 2).
Задание № 4. Перечисление типов треугольников #
- Создайте класс-перечисление
TriangleType(тип треугольника). - Данные констант класса — название на русском языке (поле
description, как в задании № 3). - Заполните список констант типов треугольника: некорректный, отрезок, остроугольный, прямоугольный, тупоугольный.
- Переработайте функцию
Triangle.type()и свойство-расширениеTriangle.typeNameиз занятия 4 так, чтобы они возвращали константу из соответствующего перечисления, а не строку. Вывод приложения сохраните прежним: вместо строки печатайте русское название константы, напримерtype().description.