Условия задачи:
Необходимо написать программу, которая будет иметь три класса: класс Main, класс Человек и класс Программист.
Структура Человек должна описывать имя и возраст. Также она должна содержать конструктор, принимающий эти значения. Ещё в нём должен быть переопределён метод public boolean equals(Object o), сравнивающий объекты по имени и возрасту.
Структура Программист должна расширять структуру Человек и описывать дополнительно уровень программирования программиста (переменная int). Здесь должен быть конструктор, принимающий имя, возраст и уровень программирования. Конструктор должен содержать проверки: Уровень программирования должен быть не больше 100 и не меньше нуля. Если уровень больше 100, выставляется уровень 100. Если меньше нуля, выставляется уровень 0. Также в Программисте должен быть метод, который принимает в себя другого программиста и сравнивает, на сколько текущий программист круче по уровню, чем тот, которого приняли в метод. Метод должен возвращать разницу уровней. При этом, если принимаемый в метод программист выше уровнем, чем наш, то должно возвращаться число ноль.
Все поля в классах Программист и Человек должны быть приватными, доступ осуществляется через геттер.
Необходимо: А) В методе main пытаться создать через конструкторы трёх программистов:
- Имя - Серёга, возраст - 25, уровень программирования - 100
- Имя - Сэм, возраст - 25, уровень программирования - 1
- Имя - Петя, возраст - 28, уровень программирования - минус 100
Б) Все три программиста после создания должны быть сложены в массив AllProgrammers. Затем необходимо написать в классе Main и вызвать из метода main метод, который будет принимать массив всех программистов и выводить в консоль данные вида:
В) Затем необходимо написать в классе Main метод, который будет принимать двух ЛЮДЕЙ по equals и возвращать результат сравнения. Он будет вызываться из метода, описанного в пункте Г.
Г) Затем необходимо написать в классе Main и вызвать из метода main метод, который будет принимать двух программистов и печатать в консоль информацию о том, на сколько уровней первый программист круче второго. Должна получиться строка вида: Программист с именем ? и возрастом ? круче программиста с именем ? и возрастом ? на ? уровней
Предварительно необходимо вызвать метод из пункта В и проверить, не являются ли два программиста одним человеком. В случае, если они являются одним человеком, нужно выводить строку вида: Сравниваемые программисты являются одним человеком c именем ?, возрастом ? и уровнем ?
Описанный метод нужно вызвать трижды из метода main, вложив в него следующих программистов:
- Серёга, Сэм
- Сэм, Серёга
- Петя, Петя