Java 调用静态方法/字段

Java 调用静态方法/字段,java,static,Java,Static,我目前正忙于一个项目。以下是我应该做的: 将Employee.java文件从java1_Lesson14项目复制到java1_Project14项目。首先,利用所学的封装知识来保护数据 使用对System.out.println()方法的调用,在控制台中显示Employee类每个实例中所有实例变量的名称和值。还可以向控制台打印任何静态变量的值 注意,如果您通过实例访问静态变量,Eclipse将警告您这不是最佳行为。使用正确的表单访问和显示任何静态信息 我想我把封装部分做对了。现在的问题是我从Ec

我目前正忙于一个项目。以下是我应该做的:

  • 将Employee.java文件从java1_Lesson14项目复制到java1_Project14项目。首先,利用所学的封装知识来保护数据

  • 使用对System.out.println()方法的调用,在控制台中显示Employee类每个实例中所有实例变量的名称和值。还可以向控制台打印任何静态变量的值

  • 注意,如果您通过实例访问静态变量,Eclipse将警告您这不是最佳行为。使用正确的表单访问和显示任何静态信息

  • 我想我把封装部分做对了。现在的问题是我从Eclipse收到的警告消息

    在e2.setTopSalary(199000)上,我收到了以下消息:“应该以静态方式访问Employee类型的静态方法setTopSalary(int)。”

    System.out.println(“e2顶薪为”+e2.topSalary)
    :“静态字段Employee.topSalary应以静态方式访问。”

    谁能告诉我怎么解决这个问题吗

    public class Employee {
        private static int topSalary = 195000;
        private int hoursPerWeek;
        public static void setTopSalary (int s) { 
            if (s > topSalary)
                topSalary = s;
        }
    
        public void addMoreHours() {
            hoursPerWeek++;
        }
    
        public static void main(String[] args) {
            Employee e1, e2;
            e1 = new Employee();
            e2 = new Employee();
            Employee.setTopSalary(199000);
            e2.setTopSalary(199001);
            e1.hoursPerWeek = 40;
            e2.hoursPerWeek = 45;
            System.out.println("Employee Top Salary is " + Employee.topSalary);
            System.out.println("e2 Top Salary is " + e2.topSalary);
            System.out.println("e1 working hours per week are " + e1.hoursPerWeek);
            System.out.println("e2 working hours per week are " + e2.hoursPerWeek);
        }
    
    }
    
    表示该类的所有实例仍引用该字段的一个实例。该字段是每个类的有效字段

    你这样称呼它:

    Employee.setTopSalary(12000);
    
    并通过以下方式访问字段:

    System.out.println(Employee.topSalary);
    

    Employee
    是类名。

    静态方法是类级别的,不属于对象,因此您可以访问
    ClassName.methodName(params)有一个变异子但没有存取子是meh。@SotiriosDelimanolis我在它的范围内回答这个问题。你应该在手术室指挥。