java - 另一个类中的 Get 和 Set 方法

标签 java class methods setter getter

我正在学习 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 读取为: staffNumberDepartment 类中的静态变量。这是你的问题。

为了解决这个问题,你应该只返回实例数据:

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/

相关文章:

php - $_data 与 $this->_data - PHP

java - 控制对 JAR 中类的访问

javascript - 使用 ES6 类作为 Angular 1.x 指令

javascript - 如何访问自定义类中的方法?

java - 不打印链表的完整内容

java - 抑制 server.log 中服务器抛出的警告

java - 一遍又一遍地询问相同的 Android Studio 权限

java - 了解 ActionListener

java - Jasper Reports 在设置动态左右边距时出现设计错误

Objective-C 方法语法