如果我有一些简单的课程,例如。问题是此类的实例 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
thenj
将是不可变的testTwo.setJ(2)
,但我不能拥有这个。
我该如何解决这个问题?