Как добавить ввод в HashSet в заданной задаче. В основном я хочу использовать addEmployee, removeEmployee, методы printEmployee в классе менеджера, но я не могу понять, что писать в основном методе, так что методы addEmployee, removeEmployee и printEmployee класса диспетчера вызываетсяРеализация метода в Java
public class EmployeeTest
{
public static void main(String[] args)
{
Manager mgr = new Manager(207, "Barbara Johnson", "054-12-2367", 109_501.36, "US Marketing");
Employee e=new Employee(127, "Kyle Jenner", "023-42-5368", 123_243.90); // newly edited
mgr.addEmployee(e); //newly edited
mgr.printEmployee(e); //newly edited
printEmployee(mgr);
}
public static void printEmployee(Employee emp)
{
System.out.println();
System.out.println("Employee id: " + emp.getEmpId());
System.out.println("Employee name: " + emp.getName());
System.out.println("Employee Soc SeC#: " + emp.getSsn());
System.out.println("Employee salary: " + NumberFormat.getCurrencyInstance().format((double) emp.getSalary()));
}
}
public class Employee
{
private int Id;
private String name;
private String ssn;
private double salary;
public Employee(int Id, String name, String ssn, double salary)
{
this.Id = Id;
this.name = name;
this.ssn = ssn;
this.salary = salary;
}
public int getEmpId()
{
return Id;
}
public String getName()
{
return name;
}
public String getSsn()
{
return ssn;
}
public double getSalary()
{
return salary;
}
public void setName(String name)
{
if (name != null && !name.equals(""))
{
this.name = name;
}
}
public void raiseSalary(double increase)
{
if (increase > 0)
{
salary += increase;
}
}
}
public class Manager extends Employee
{
private String dept;
public Manager(int Id, String name, String ssn, double salary, String dept)
{
super(Id, name, ssn, salary);
this.dept = dept;
}
**private Set<Employee> staff=new HashSet<>();** //This is where I need help
**public void addEmployee(Employee e)** //This is where I need help
{
staff.add(e);
}
**public void removeEmployee(Employee e)** //This is where I need help
{
staff.remove(e);
}
**public void printEmployee(Employee e)** //This is where I need help
{
for (Employee emp: staff)
{
System.out.println("Name : "+getName()+" "+"ID : "+getEmpId());
}
}
public String getDeptName()
{
return dept;
}
}
Выход из программы
название: Барбара Джонсон ID: 207 // Желаемая Вывод: - имя: Кайли Дженнер ID: 127
Сотрудник ID: 207
имя сотрудника: Барбара Джонсон
Сотрудник Soc SeC#: 054-12-2367
Сотрудник зарплата: Rs.109,501.36
Тестирование raiseSalary и SetName на менеджера:
Сотрудник идентификатор: имя 207
сотрудников: Барбара Джонсон-Смайт
Работник Soc Sec: 054-12-2367
сотрудников зарплата: Rs.119,501.36
Вы можете ... создать некоторых сотрудников, а затем вызвать методы типа 'mgr.addEmployee (myEmployee)' ... –
Я сделал так, как вы просили ..... создал экземпляр класса employee, а затем вызвал методы в главный метод, как вы сказали, но он добавляет и печатает одно и то же имя и идентификатор, т. е. Барбара Джонсон в этом случае – user5451270
Можете ли вы показать свой текущий код и вывод? В противном случае мы должны угадать. В приведенном выше коде запрашивается, чтобы менеджер печатался, потому что вы вызываете 'EmployeeTest.printEmployee()', а не 'Manager.printEmployee() '. Если вы хотите, чтобы сотрудники менеджера печатались, используйте 'mgr.printEmployee()'. –