java基本工资计划

java基本工资计划,java,Java,我是java新手,不断收到以下错误消息: 无法访问ManageAlary类型的封闭实例。必须使用类型为Managesalary的封闭实例(例如x.new A(),其中x是Managesalary的实例)限定分配。在线* 内部类需要对外部类的现有引用。如果没有Managesalary的实例,则无法实例化Salary。您可以通过执行以下操作来实现此目的: Managesalary mSalary = new Managesalary(); Salary Jan= mSalary.new Salary

我是java新手,不断收到以下错误消息:

无法访问ManageAlary类型的封闭实例。必须使用类型为Managesalary的封闭实例(例如x.new A(),其中x是Managesalary的实例)限定分配。在线*


内部类需要对外部类的现有引用。如果没有
Managesalary
的实例,则无法实例化
Salary
。您可以通过执行以下操作来实现此目的:

Managesalary mSalary = new Managesalary();
Salary Jan= mSalary.new Salary();

错误是您必须通过引用封闭类的实例来创建内部类

ManageSalary mn = new Managesalary()
Salary salary =  mn.new Salary();

您已经将
Salary
类定义为
Managesalary
的内部类(尽管您的代码缩进隐藏了一点)

因此,
Salary
的每个实例必须绑定到
Managesalary
的一个实例


main
方法中,创建
Managesalary
(例如
Managesalary ms=new Managesalary()
)的实例,并将内部类对象初始化为
ms.new Salary()

或者将类Salary复制到单独的文件名Salary.java中并将其公开,把它放在你的主类之外,最好放在它上面,或者声明它是静态的。

将你的薪资类设置为静态的

static class Salary{
    // rest of the code
}
可能重复的
static class Salary{
    // rest of the code
}