为什么变量的值会对所有对象发生变化

时间:2013-11-13 15:21:55

标签: java

我有一个班级和年龄领域。但是当我改变一个对象的年龄时,对于所有其他对象也会改变它。

private static int age;

有人可以帮助解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

静态变量类变量所以,请从变量声明中删除static

private int age;

根据java docs:

  

在声明中包含static修饰符的字段称为静态字段或类变量。它们与类相关联,而不是与任何对象相关联。该类的每个实例共享一个类变量,该变量位于内存中的一个固定位置。

答案 1 :(得分:3)

使用:

private int age;

静态变量在所有实例之间共享。

答案 2 :(得分:0)

静态成员属于全班,所以如果你改变它,所有实例都会受到影响。

使用

private int age; // without static.