|
|
|
@ -18,27 +18,29 @@ public class Main {
|
|
|
|
|
Scientist s3 = new SeniorScientist(1100, 8);
|
|
|
|
|
Scientist j4 = new JuniorScientist(950, 7);
|
|
|
|
|
|
|
|
|
|
// Формирование списка уникальных объектов типа Scientist
|
|
|
|
|
ArrayList<Scientist> uniqueScientists = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
// Массив всех объектов
|
|
|
|
|
Scientist[] allScientists = { s1, s2, j1, j2, j3, e1, e2, e3, s3, j4 };
|
|
|
|
|
|
|
|
|
|
// Формирование списка уникальных объектов (используем equals() для проверки)
|
|
|
|
|
ArrayList<Scientist> uniqueScientists = new ArrayList<>();
|
|
|
|
|
for (Scientist sc : allScientists) {
|
|
|
|
|
if (!uniqueScientists.contains(sc)) {
|
|
|
|
|
uniqueScientists.add(sc);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// В случае если уникальных объектов больше 9, выводим первые 9
|
|
|
|
|
int count = Math.min(uniqueScientists.size(), 9);
|
|
|
|
|
// Демонстрация установки характеристик через set-методы (пример)
|
|
|
|
|
if (!uniqueScientists.isEmpty()) {
|
|
|
|
|
Scientist first = uniqueScientists.get(0);
|
|
|
|
|
// Изменим ставку и стаж для первого объекта
|
|
|
|
|
first.setSalary(1050);
|
|
|
|
|
first.setSeniority(11);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
System.out.println("Величина надбавок и общая зарплата для уникальных научных сотрудников:");
|
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
|
|
Scientist sc = uniqueScientists.get(i);
|
|
|
|
|
double bonus = sc.computeBonus();
|
|
|
|
|
double totalSalary = sc.getSalary() + bonus;
|
|
|
|
|
System.out.println("Объект " + (i+1) + ": " +
|
|
|
|
|
"Надбавка = " + bonus + ", Общая зарплата = " + totalSalary);
|
|
|
|
|
// Вывод характеристик каждого уникального объекта через перегруженный метод toString()
|
|
|
|
|
System.out.println("Характеристики уникальных научных сотрудников:");
|
|
|
|
|
for (Scientist sc : uniqueScientists) {
|
|
|
|
|
System.out.println(sc.toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|