我试图在这里练习Singleton类。singleton类中的成员变量的单一副本
public class StaticClass {
public static StaticClass staticObject = new StaticClass();
private int counter;
private StaticClass() {
}
public static StaticClass getMyObject() {
return staticObject;
}
public Integer showCounter() {
return ++counter;
}
}
public class TestSingleton {
public static void main(String[] args) {
new TestSingleton().testImplementation();
}
public void testImplementation() {
StaticClass obj1 = StaticClass.getMyObject();
Integer obj1Int = obj1.showCounter();
StaticClass obj2 = StaticClass.getMyObject();
Integer obj2Int = obj2.showCounter();
StaticClass obj3 = StaticClass.getMyObject();
Integer obj3Int = obj3.showCounter();
System.out.println(obj1Int+","+obj2Int+","+obj3Int);
}
}
但我有点困惑,在这里保持计数器变量的单一副本。
运行程序后,我得到不同的计数器值为1,2,3
。
作为为什么有多个值的任何建议?
showCounter()在返回值之前通过递增计数器来更改计数器的值。所以你看到的输出是预期的。 – jhauris