调用静态方法/字段

时间:2013-07-11 19:06:50

标签: java static

我目前停留在一个项目上。这是我应该做的:

  1. 将Employee.java文件从java1_Lesson14项目复制到java1_Project14项目。首先,使用您所了解的封装来保护数据。

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

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

  4. 我认为我做了封装部分。现在的问题是我从Eclipse获得的警告消息。

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

    并在System.out.println("e2 Top Salary is " + 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);
        }
    
    }
    

1 个答案:

答案 0 :(得分:1)

The static keyword表示该类的所有实例仍引用该字段的一个实例。该字段实际上是每个类别。

您可以按如下方式调用它:

Employee.setTopSalary(12000);

并按以下方式访问字段:

System.out.println(Employee.topSalary);

Employee是班级名称。