Задание на лабораторную работу
Задания для выполнения:
1. Перегрузка методов
Вернитесь к классу TimeSpan
из второй лабораторной работы.
Используя механизм перегрузки методов, допишите или исправьте методы так, чтобы класс имел следующий функционал:
конструктор без аргументов (в этом случае временной интервал равен 0 часов и 0 минут);
конструктор с 1 аргументом (минуты);
конструктор с 2 аргументами (часы и минуты);
конструктор с 1 аргументом типа
TimeSpan
(из входящегоTimeSpan
считываются часы и минуты для создания новогоTimeSpan
);метод добавления времени ко временному интервалу с 2 аргументами (часы и минуты);
метод добавления времени ко временному интервалу с 1 аргументом (минуты);
метод добавления времени ко временному интервалу с 1 аргументом типа
TimeSpan
(из входящегоTimeSpan
считываются часы и минуты для добавления к текущему);метод вычитания времени из текущего временного интервала с 2 аргументами (часы и минуты);
метод вычитания времени из текущего временного интервала с 1 аргументом (минуты);
метод вычитания времени из текущего временного интервала с 1 аргументом типа
TimeSpan
(из входящегоTimeSpan
считываются часы и минуты для вычитания из текущего).
2. Цепочка наследования. В данном задании необходимо выполнить следующие действия:
1. Создайте класс Person
, который должен содержать конструктор, геттеры\сеттеры и следующие поля:
фамилия;
имя;
возраст.
Переопределите метод toString()
, который должен возвращать строку следующего формата:
2. Создайте класс Student
, который должен наследоваться от класса Person
. Добавьте конструктор, геттеры\сеттеры и следующие поля:
группа;
номер студенческого билета.
Переопределите метод toString()
, который должен возвращать строку следующего формата:
3. Создайте класс Lecturer
, который должен наследоваться от класса Person
. Добавьте конструктор, геттеры\сеттеры и следующие поля:
кафедра;
зарплата.
Переопределите метод toString()
, который должен возвращать строку следующего формата:
4. Используя восходящее преобразование, создайте в классе Main
несколько объектов классов Student
и Lecturer
, после чего создайте массив, который бы мог включать объекты классов Person
, Student
, Lecturer
. Заполните массив объектами этих классов.
5. Используя цикл, обратитесь к элементам массива и выведите в консоль, с помощью метода toString()
, информацию от каждого объекта.
3. Задание на простой полиморфизм
В данной задаче мы допишем игру "Камень Ножницы Бяумага".
Скачайте, распакуйте и откройте проект в IntelliJ IDEA, запустите приложение и изучите исходный код;
с помощью механизма полиморфизма создайте классы игровых фигур (Камень, Ножницы, Бумага), которые наследуются от
GameShape
;Напишите логику метода
generateShape()
, который возвращает одну из трех случайных фигур (объект одного из трех классов);в методе
actionPerformed()
допишите создание объекта игровой фигуры в зависимости от того, на какую кнопку нажал пользователь (читайте комментарии внутри метода);реализуйте метод
checkWinner()
, который принимает на вход два объекта игровых фигур - фигура компьютера и игрока. С помощью оператораinstanceof
выясните, фактический объект какого класса скрывается за ссылочной переменной типаGameShape
. В зависимости от сочетания фигур, метод возвращает: 1 если выиграл игрок, -1 если выиграл компьютер или 0 если ничья;Сыграйте в игру и убедитесь, что ваш код корректен и игра работает правильно.
4. Модификация программы Draw
Скачайте архив с проектом
Данная программа позволяет рисовать простые фигуры. С помощью кнопок на верхней панели выбираете нужную фигуру, после чего в поле рисования зажимаете кнопку мыши и рисуете фигуру нужных размеров.
Задание состоит в следующем:
Откройте проект, прочитайте комментарии, разберитесь как работает приложение;
Используя механизм полиморфизма, модифицируйте программу, добавив возможность выбирать и рисовать эллипсы;
Задание на дополнительный балл. Добавьте в программу кнопку Clear, по нажатию на которую программа должна стирать все фигуры.
При сдаче лабораторной работы, вы должны быть готовыми показать, где и для каких целей используется полиморфизм и восходящее преобразование.
Last updated
Was this helpful?