[Skillbox] Java-разработчик - модуль 14 - Абстрактные классы и интерфейсы - Практическая работа 14.9 - Company (Решение → 88409)
[Skillbox] Java-разработчик - модуль 14 - Абстрактные классы и интерфейсы - Практическая работа 14.9 - Company - (2023 год обучения).
Цель!
Научиться работать с интерфейсами, абстрактными классами и взаимодействием классов.
Что нужно сделать
Выполните задание в репозитории java_basics в проекте AbstractClasses/practice_1. Директория пустая, вам необходимо в ней создать новый проект и выполнить задание.
1. Создайте класс компании Company, содержащей сотрудников и реализующей методы:найм одного сотрудника — hire(Employee employee),найм списка сотрудников – hireAll(Collection<Employee> employes),увольнение сотрудника – fire(Employee employee),получение значения дохода компании – getIncome().Каждый метод
1. Создайте класс компании Company, содержащей сотрудников и реализующей методы:
- найм одного сотрудника — hire(Employee employee),
- найм списка сотрудников – hireAll(Collection<Employee> employes),
- увольнение сотрудника – fire(Employee employee),
- получение значения дохода компании – getIncome().
Каждый метод НЕ должен иметь модификатор static, это позволит каждому объекту класса Company иметь свой набора сотрудников, свой расчет дохода, увольнение и найм. Аргументы и возвращаемое значение методов выберите на основании логики работы вашего приложения.
2. Создайте два метода, возвращающие список указанной длины (count). Они должны содержать сотрудников, отсортированных по убыванию и возрастанию заработной платы:
- List<Employee> getTopSalaryStaff(int count),
- List<Employee> getLowestSalaryStaff(int count).
3. Создайте классы сотрудников с информацией о зарплатах и условиями начисления зарплаты:
- Manager — зарплата складывается из фиксированной части и бонуса в виде 5% от заработанных для компании денег. Количество заработанных денег для компании генерируйте случайным образом от 115 000 до 140 000 рублей.
- TopManager — зарплата складывается из фиксированной части и бонуса в виде 150% от заработной платы, если доход компании более 10 млн рублей.
- Operator — зарплата складывается только из фиксированной части.
Каждый класс сотрудника должен имплементировать интерфейс Employee. В интерфейсе Employee должен быть объявлен метод, возвращающий зарплату сотрудника, — getMonthSalary().
Аргументы и возвращаемое значение метода выберите в соответствии с логикой начисления зарплат. В интерфейсе объявите необходимые методы.
Для демонстрации и тестирования работы ваших классов:
- Создайте и наймите в компанию: 180 операторов Operator, 80 менеджеров по продажам Manager, 10 топ-менеджеров TopManager.
- Распечатайте список из 10–15 самых высоких зарплат в компании.
- Распечатайте список из 30 самых низких зарплат в компании.
- Увольте 50% сотрудников.
- Распечатайте список из 10–15 самых высоких зарплат в компании.
- Распечатайте список из 30 самых низких зарплат в компании.
Примеры вывода списка зарплат
Список из пяти зарплат по убыванию:
- 230 000 руб.
- 178 000 руб.
- 165 870 руб.
- 123 000 руб.
- 117 900 руб.
- [Skillbox] Java-разработчик - модуль 13 - Наследование. 2023 год.
- [Skillbox] Java-разработчик - модуль 14 - Абстрактные классы и интерфейсы - Практическая работа 14.9 - Company
- [Skillbox] Java-разработчик - модуль 15 - Практическая работа 15.14 - Airport.
- [Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.13 - DataCollector
- [Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.16 - calculateFolderSize() класса FileUtils
- [Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.17 - calculateFolderSize() класса FileUtils
- [Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.18 - MovementsList
- Sinergya. Ответы по дисциплине: Профессиональная деятельность в условиях неопределённости
- Sit down, Peter. … mark is “good”. Выберите один или несколько ответов: 1.His 2.Your 3.You 4.My
- SIT транзисторы производятся с каналами
- [Skillbox] Java-разработчик - ВСЕ РЕШЕНИЯ НА ВСЕ МОДУЛИ !!! - 1200
- [Skillbox] Java-разработчик - модуль - 09_FilesAndNetwork
- [Skillbox] Java-разработчик - модуль 10 - массивы и коллекции. 2023 год.
- [Skillbox] Java-разработчик. Модуль 10 "Наследование и полиморфизм". Решение задач домашней работы 10.1, 10.2