我正在学习 java,我在其他类中的 get 和 set 方法上遇到问题。
我的第一个类名为 Department,第二个类名为 Company。我想设置类(class)部门的员 worker 数,并获取类(class)公司的员 worker 数。
部门类
public class Department {
public int staffNumber;
public Department() {
}
public void setStaffNumber(int staff) {
this.staffNumber= staff;
}
}
公司类
public class Company {
public Department staffNumber;
public Company() {
}
public Department getStaffNumber() {
return Department.staffNumber = Department.staffNumber;
}
}
能否请您帮我解决错误消息 - 无法从静态上下文中引用非静态变量 staffNumber? 谢谢
最佳答案
问题出在这里:
return Department.staffNumber = Department.staffNumber;
编译器会将 Department.staffNumber
读取为: staffNumber
是 Department
类中的静态变量。这是你的问题。
为了解决这个问题,你应该只返回实例数据:
public Department getStaffNumber() {
//<Department attribute in the class>
return staffNumber;
}
顺便说一下,即使您在 Department
类中有一个 Department.staffNumber
静态属性,建议行 return Department.staffNumber = Department.staffNumber ;
没有任何意义。它与此类似:
public class SomeClass {
int x;
public int getX() {
//return x = x; //clumsy
return x; //now this might be better
}
}
关于java - 另一个类中的 Get 和 Set 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783073/