Static java issue

22 浏览
0 Comments

Static java issue

这个问题在这里已经有了答案:

Java Static [复制]

我有两个类:

public class Emp {
    String name;
    static int bankVault;
    }

和另一个是:

public class TestEmp {
public static void main(String[] args) {
    Emp emp1 = new Emp();
    Emp emp2 = new Emp();
    emp1.bankVault = 10;
    emp2.bankVault = 20;
    System.out.println(emp1.bankVault);
    System.out.println(emp2.bankVault);
    System.out.println(Emp.bankVault);
    }
}

输出结果是:

20
20
20

这是因为static关键字吗?第一个System.out.println不应该返回10吗?

admin 更改状态以发布 2023年5月20日
0
0 Comments

是的,static的意思是“每个类一个”而不是“每个实例一个”。一旦您修改它,您就会为所有实例修改它。

0
0 Comments

是的,这是因为有static这个关键字。使用static意味着你不需要一个对象实例就可以访问它。

它可以通过Emp.bankVault访问。这个属性的初始化在加载class Emp时完成,因此无需Emp对象的实例。

一旦设置,不论你使用哪个Emp实例读取它,它都会有相同的值。

0