【发布时间】:2013-10-11 08:02:02
【问题描述】:
如果我有一些简单的课程,例如。问题是此类的实例 B 会影响实例 A 的j。
public class Tester {
private static int j;
public Tester() {
}
public void setJ(int i){
this.j = i;
}
public int getJ() {
return j;
}
}
在我的实际应用程序中,j 必须是 static(所以 private static 类可以使用它)。但是,当我在上面的示例中设置static 时遇到问题。如果我们创建这个类的两个单独的实例,我可以显示问题:
Tester testOne = new Tester();
Tester testTwo = new Tester();
testOne.setJ(1);
testTwo.setJ(2);
System.out.println(testOne.getJ()); //returns 2
然后通过在testTwo 中设置静态变量,它会覆盖我之前为testOne 中的静态变量设置的内容。如果我要删除static,那么j 相对于testTwo.setJ(2) 将是不可变的,但我不能拥有这个。
我该如何解决这个问题?
【问题讨论】:
-
嗯,是的。这就是
static所做的。
标签: java variables static scope immutability