![]() |
класс Бухгалтер
Доброго времени суток! Опыт программирования на java у меня практически нулевой,но столкнулся с задачей,которую необходимо реализовать:
Создать абстрактный класс Сотрудник. У него должны быть методы для задания ставки (з/п в месяц при 100% отработки), количества отработанных часов, а также методы для получения процента отработанного времени и зарплаты за месяц. Сотрудники могут быть двух типов: Программист и Менеджер. Программист получает зарплату в соответствии с количеством отработанных часов, а менеджер - 100% в случае переработки и соответствующий процент в случае недоработки. Класс Бухгалтер принимает множество сотрудников и считает их з/п. Для него должно быть прозрачным, какого типа является сотрудник. Ему важна только зарплата за текущий месяц. Создать нужно 4 класса: сотрудник,менеджер,программист,бухгалтер. класс сотрудник,менеджер и программист я создал,но не понимаю, нафиг нужен класс бухгалтер,если у меня зарплата считается в менеджере и программисте,но класс "бухгалтер" должен быть обязательно;класс бухгалтер должен наследовать сотрудника или не обязательно?как вообще подсчёт зарплаты в этом классе организовать?Заранее спасибо за советы. Вот собственно то,что я уже набросал: Код:
abstract class Employee { private int ID; public String name; public String role; public int FixedSalary; public int worckedHours; public Employee() { ID++; } public final int getID() { return ID; } public void setName(String name) { this.name=name; } public void setRole(String role) { this.role=role; } public int setFixedSalary(int FixedSalary) { return this.FixedSalary=FixedSalary; } public int setWorckedHours(int worckedHours) { return this.worckedHours=worckedHours; } public int getWorckedHours() { return worckedHours; } public int getFixedSalary() { return this.FixedSalary; } public String getName() { return name; } public String getRole() { return role; } public abstract int getPercent(); public abstract int getFullSalary(); } Код:
class Developer extends Employee { static private final int HOURS_FOR_MONTH = 160; static private final int MAX_SALARY=5000; public int getPercent() { return getWorckedHours()*100/HOURS_FOR_MONTH; } public int getFullSalary() { return getFixedSalary()*100/MAX_SALARY; } } Код:
class Manager extends Employee { static private final int HOURS_FOR_MONTH = 160; static private final int MAX_SALARY=4000; public int getPercent() { if(getWorckedHours()>HOURS_FOR_MONTH) { return 100; } return getWorckedHours()*100/HOURS_FOR_MONTH; } public int getFullSalary() { return getFixedSalary()*100/MAX_SALARY; } } |
Время: 14:05. |
Время: 14:05.
© OSzone.net 2001-