为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不破坏封装的情况下使它们对彼此“可见”?

如何在不破坏封装的情况下使它们对彼此“可见”?

慕田峪7331174 2022-06-15 17:34:50
Manager 和 Employee 类都是 EnterpriseMember 的子类。如何为 Employee 类编写一个“getManager”方法(返回在其报表列表中包含此 Employee 的 Manager 实例)?提前致谢!public class Manager extends EnterpriseMember {    /*Fields */    private List reports = new ArrayList();    /*Constructor */    public Manager(String name){        super(name);    }    /*Methods */    public void addReport(Employee employee){                    reports.add(employee);    }// How can "employee" know it is in this List?}public class Employee extends EnterpriseMember {    /*Constructor */    public Manager(String name){        super(name);    }    /*Methods */    public Manager getManager(){                    return ???;    }}
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

像这样的东西:


public class Manager {


    private List<Employee> reports = new ArrayList<Employee>();


    public void addReport(Employee e) {

        if (e != null) {

            this.reports.add(e);

            e.setManager(this);

        }

    }

}


public class Employee {


    private Manager manager;


    public void setManager(Manager m) {

        if (m != null) {

            this.manager = m;

        }

    }

}

以防万一不清楚,您应该添加您需要的所有其他方法。我只说明了如何在将参考添加到直接报告时更新Manager参考。EmployeeList


您还应该有一个从removeReport中删除 an并将其设置为的方法。EmployeeListManagernull


你打算如何Employee在这个中找到一个List?按名字?员工ID?提示:考虑覆盖equals并hashCode适当地为您的课程。


不Managers也是Employees吗?老板没有老板吗?这是一个层次结构,一棵树。


查看完整回答
反对 回复 2022-06-15
?
慕少森

TA贡献2019条经验 获得超9个赞

通常具有不同属性的对象如下所示:


public class Employee extends EnterpriseMember {


    private Manager manager;

    private String name; // You probably don't need this because you defined it in the Superclass.

    .

    .

    .


    /*Constructor */

    public Employee(String name){

        super(name);

    }


    /*Methods */

    public Manager getManager(){            

        return manager;

    }


    public void setManager(Manager manager){            

        this.manager = manager

    }


    // Other getters and setters for the attributes.


}


查看完整回答
反对 回复 2022-06-15
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号