
- •Конструкторы классов
- •Наследование
- •Модификаторы видимости
- •Перегрузка
- •Полиморфизм
- •Приемы программирования: наследование и полиморфизм
- •Конструктор по умолчанию
- •Вызов конструктора суперкласса
- •Приведение типов
- •Оператор instanceof
- •Анонимные и вложенные классы
- •Модификатор static
- •Модификатор final
- •Абстрактные классы
- •Множественное наследование
- •Описание интерфейса
- •Реализация интерфейса
- •Переменные интерфейсного типа
- •Приемы программирования: пример применения интерфейсов
- •Пакеты и области видимости Пакеты
- •Импортирование пакетов
- •Файловая структура Java-проекта
- •Области видимости классов
- •Области видимости членов класса
- •Области видимости переменных
- •Конфликты имен
- •Ход работы:
- •Задание №1
- •Задание №2
- •Задание №2
- •Задание № 3
- •Контрольные вопросы:
Задание № 3
Создать абстрактный класс Animal (Животные) c полем legs (количество ног) и методами walk() и eat(). Некоторые из животных являются домашними и реализуют интерфейс Pet с методами установки и получения имени и методом play(). Реализовать абстрактные классы Spider, Cat, Fish, где классы Cat и Fish являются домашними животными. Метод, отвечающий за ходьбу, должен сообщать, например: – «Это животное ходит на 4 ногах» или «Это животное плавает. У него 0 ног». Аналогично реализовать методы eat() и play().
Создать абстрактный класс Point (точка) c координатами x, y и абстрактным методом paint(). На его основе создать классы Circle, Rectangle и Polygon. Реализовать интерфейс Properties с методами color(String Str) и transparence (int percent). Все классы должны иметь виртуальные методы установки и получения значений координат, а также изменения цвета и получения текущего цвета, прозрачности.
Создать абстрактный класс Vehicle. На его основе реализовать классы Car (автомобиль), Bicycle (велосипед) и Lorry (грузовик). Классы должны иметь возможность задавать и получать параметры средств передвижения (цена, максимальная скорость, год выпуска и т.д.). Наряду с общими полями и методами, каждый класс должен содержать и специфичные для него поля. Создать интерфейс PriceList для объекта в формате прайс-листа (цена, количество, название товара, дата продажи, тип (новая, б/у, после аварии, антиквариат)).
Создать абстрактный класс Figure. На его основе реализовать классы Rectangle (прямоугольник), Circle (круг) и Trapezium (трапеция) с возможностью вычисления площади, центра тяжести и периметра. Реализовать интерфейс Properties с методами color(String Str) и density (double dens). Все классы должны иметь виртуальные методы установки и получения значений координат, вычисления площади, центра тяжести и периметра, а также изменения цвета и получения текущего цвета, плотности.
Создать абстрактный класс Body. На его основе реализовать классы Parallelepiped (прямоугольный параллелепипед), Cone (конус) и Ball (шар) с возможностью вычисления площади поверхности и объема. Реализовать интерфейс Properties с методами color(String Str) и mass (double density).
Создать абстрактный класс Plants (Растения). На его основе реализовать классы Trees (Деревья), Кусты (Bushes), Трава (Gross). Реализовать интерфейс Фруктовые деревья с методами полить, опрыскать, собрать урожай.
Создать абстрактный класс Worker с полями, задающими фамилию работника, фамилии руководителя и подчиненных и асбтрактными методами вывода списка обязанностей и списка подчиненных на экран. На его основе реализовать классы Manager (руководитель проекта), Developer (разработчик) и Coder (младший программист). Создать интерфейс с полями зарплата, стаж и методом, для вычисления заплаты с учетом стажа.
Реализовать абстрактный класс Clothes (одежда) c полем, определяющим размер и тип (мужская или женская). На его основе реализовать классы Coat, Shirt, Trousers, Sock с полями: цвет, тип ткани, качество товара (новое или б/у). Реализовать интерфейс Properties с методами стирки и глажки (каждая одежда должна стираться и гладиться по-разному).
Создать абстрактный класс Vehicle с полями, определяющими цену, цвет, вес. На его основе реализовать классы Train, Plane, Vessel, содержащие присущие этим классам свои поля. Реализовать интерфейс Transport с методами определяющими среднюю скорость движения и среднее время перемещения из точки A в Б.
Создать абстрактный класс Hardware (комплектующие). В классе должны быть представлены поля: дата оформления, цена товара, количество единиц товара, номер накладной, по которой товар поступил на склад. На его основе создать классы Processor, Motherboard, Memory, GraphicsCard, HardDisk, содержащие присущим этим классам свои поля. Создать интерфейс PriceList для каждого класса в формате прайс-листа.
Создать абстрактный класс Sportsman (Спортсмен), с полями имя, фамилия, возраст. На его основе создать классы Runner, Swimmer, Cyclist, Motorcyclist, содержащие присущие этим классам свои поля. Реализовать интерфейс Transport с методами определяющими среднюю скорость движения и среднее время перемещения из точки A в Б.