Задание на лабораторную работу

Задания для выполнения:

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. Задание на простой полиморфизм

В данной задаче мы допишем игру "Камень Ножницы Бяумага".

  1. Скачайте, распакуйте и откройте проект в IntelliJ IDEA, запустите приложение и изучите исходный код;

  2. с помощью механизма полиморфизма создайте классы игровых фигур (Камень, Ножницы, Бумага), которые наследуются от GameShape;

  3. Напишите логику метода generateShape(), который возвращает одну из трех случайных фигур (объект одного из трех классов);

  4. в методе actionPerformed() допишите создание объекта игровой фигуры в зависимости от того, на какую кнопку нажал пользователь (читайте комментарии внутри метода);

  5. реализуйте метод checkWinner(), который принимает на вход два объекта игровых фигур - фигура компьютера и игрока. С помощью оператора instanceof выясните, фактический объект какого класса скрывается за ссылочной переменной типа GameShape. В зависимости от сочетания фигур, метод возвращает: 1 если выиграл игрок, -1 если выиграл компьютер или 0 если ничья;

  6. Сыграйте в игру и убедитесь, что ваш код корректен и игра работает правильно.

4. Модификация программы Draw

Скачайте архив с проектом

Данная программа позволяет рисовать простые фигуры. С помощью кнопок на верхней панели выбираете нужную фигуру, после чего в поле рисования зажимаете кнопку мыши и рисуете фигуру нужных размеров.

Задание состоит в следующем:

  1. Откройте проект, прочитайте комментарии, разберитесь как работает приложение;

  2. Используя механизм полиморфизма, модифицируйте программу, добавив возможность выбирать и рисовать эллипсы;

  3. Задание на дополнительный балл. Добавьте в программу кнопку Clear, по нажатию на которую программа должна стирать все фигуры.

При сдаче лабораторной работы, вы должны быть готовыми показать, где и для каких целей используется полиморфизм и восходящее преобразование.

Last updated