如果我有一些简单的类如。问题是这个类的实例B可能影响实例A的j
。如何使对象的静态变量不可变对象B上的状态变化
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)
,但我不能有这个。
我该如何解决这个问题?
嗯,是的。这就是'静态'所做的。 – roippi