gpt4 book ai didi

java - 如何制作只有Boss类才可以使用的方法

转载 作者:行者123 更新时间:2023-11-30 02:59:16 25 4
gpt4 key购买 nike

我有四门课


员工
经理
老板

员工扩展人员
经理扩展员工
老板延伸经理

我有方法:
员工有方法 setSalary(){...}

我希望只有 Boss 类能够更改 Employee 的工资。甚至不是 Employee 类,也不是 Manager 类,只有 Boss 类。

我该怎么做?我知道有办法使用instanceof,但不知道如何使用

最佳答案

如果您的 Employee 类有一个方法 setSalary(..); ,那么您就无法避免员工将其称为 setSalary(..);方法。私有(private)方法也可以在类内部被该类的另一个方法调用。

您可以做的是:设置 setSalary(..); 的可见性到包装级别并仅保留 EmployeeBoss在同一个包中,所有其他内容在另一个包中。并注意setSalary(..);对于任何 Employee仅在 Boss 中的某个方法内调用

您将在Boss中有一个方法像这样:

public class Boss extends Employee {

public void setSalaryFor(Employee employee, int salary) {
employee.setSalary(salary);
}

}

您的 Employee 类将具有以下方法:

public class Employee extends Person {

private int salary;

//Package visibility
void setSalary(int salary) {
this.salary = salary;
}

}

这样,在你的包裹外面只有 EmployeeBoss , Employee将无法调用setSalary(..);更新员工工资的方法和唯一方法是调用 Boss 的公共(public)方法并传递薪水和员工作为其参数。

关于java - 如何制作只有Boss类才可以使用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36371641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com