Классы #
Базовый синтаксис классов #
Презентацию по теме можно посмотреть по ссылке
Видео-запись: Rutube
Свойства классов #
Презентацию по теме можно посмотреть по ссылке
Видео-запись: Rutube
Расширения классов #
Презентацию по теме можно посмотреть по ссылке
Видео-запись: Rutube
Задание № 1: Написание класса треугольник #
Создайте класс треугольник. Конструктор данного класса получает 3 аргумента
— длины трёх сторон, sideA
, sideB
и sideC
.
Класс должен позволять пользователям получить с помощью функций:
- Длину самой большой стороны.
- Периметр треугольника.
- Площадь треугольника.
- Текстовое представление треугольника, в котором длины сторон отсортированы по уменьшению.
Доступ к конкретным сторонам треугольника не должен быть предоставлен.
Создайте список из трёх треугольников. Исходные длины сторон получайте из аргументов приложения. Если аргументов не достаточно, чтобы составить треугольники (их количество не кратно трём или аргументы не содержат вещественные числа), то приложение должно сообщить об этом пользователю и завершить свою работу с ненулевым кодом возврата.
Задание № 2: Определение вычисляемых свойств #
В созданном на предыдущем этапе классе треугольник преобразуйте функции в вычисляемые свойства. Данные свойства должны предоставлять необходимую информацию через функцию-геттер, связанную с конкретным свойством.
Для преобразования к строке не надо вводить свойство, оставьте переопределение
стандартной функции toString()
.
Задание № 3: Расширение класса #
Реализуйте возможность определения типа треугольника в форме расширения класса. Тип треугольника определяется следующим образом:
- некорректный (наибольшая сторона больше суммы двух других)
- отрезок (наибольшая сторона равна сумме двух других)
- остроугольный (квадрат наибольшей стороны меньше суммы квадратов двух других)
- прямоугольный (квадрат наибольшей стороны равен сумме квадратов двух других)
- тупоугольный (квадрат наибольшей стороны больше суммы квадратов двух других)
Для решения задачи:
- В классе треугольник предоставьте метод
sides(): List<Double>
, который возвращает пользователю отсортированный список сторон. - Вне класса реализуйте функцию-расширение, которая берёт длины сторон из созданной функции и возвращает тип треугольника в виде строки.
Воспользуйтесь функцией-расширением и определите типы для всех треугольников, которые пользователь передал в качестве аргументов.