我尝试实现规格图。有3类:公司,部门,员工。
部门可以具有部门类型的子部门-我也为此创建了一个LinkedList。以及子部门的“不同”构造函数。
每个公司都有一个名字。
现在我有一个问题和一个问题:
setManager
是否有任何部门将此经理作为经理。如果是这样,那么我返回。这是正确的方法吗?我想到了布尔值isManager
,但规范中没有类似的内容。removeEmployee
从部门列表中删除Employee,则使用相同的方法将Employee的Department变量设置为null。但是,如果我尝试获取雇员所在部门的名称,我仍然会获得部门,而不是null。 Department类代码的removeEmployee
如下所示:
public void removeEmployee(Employee e) {
employees.remove(e);
e.setDepartment(null);
}
在main方法中,我这样做是为了检查雇员的部门是否为空:
departmentName.employees.remove(employeeName);
System.out.println(employeeName.getDepartment().getName());
输出应为 null ,但我得到的是 departmentName 。 他已从部门的 employees 列表中删除,但是将员工部门设置为 null 失败。 / p>
如果您能回答我的问题并帮助我解决问题,我将很高兴。
我还可以上传图表和我的三个类,以便您检查,但我不希望您浪费时间。
亲切的问候, 纽伯
答案 0 :(得分:0)
看来employees
是某种List<Employee>
,是public
。
这样可以调用departmentName.employees.remove(employeeName);
而不调用setDepartment(null)
,最好将employees
声明为private
,而仅使用{{1} }方法来删除雇员。
通过这种方式,您可以避免以除已定义方式之外的其他任何方式(称为封装方式)罢免员工。
答案 1 :(得分:0)
我建议将行替换为调用remove方法,因为您不会调用方法。取而代之的是调用Collection方法。
它应该看起来像这样:
ObjectName.removeEmployee(employee);