静态字段的共享特性
89页Exercise 8
Write a program that demonstrate that, no matter how many objects you create of a particular class, there is only one instance of a particular static field in that class.
public class Counter {
// Static field - only one instance exists regardless of object count
public static int staticCount = 0;
// Instance field - new copy per object
public int instanceCount = 0;
public Counter() {
staticCount++; // Increment static counter
instanceCount++; // Increment instance counter
}
}
public class Application {
public static void main(String[] args) {
// Create three objects
Counter c1 = new Counter();
Counter c2 = new Counter();
Counter c3 = new Counter();
// All objects show the same staticCount value
System.out.println("Static counts:");
System.out.println(c1.staticCount); // 3
System.out.println(c2.staticCount); // 3
System.out.println(c3.staticCount); // 3
// Instance counts remain separate
System.out.println("\nInstance counts:");
System.out.println(c1.instanceCount); // 1
System.out.println(c2.instanceCount); // 1
System.out.println(c3.instanceCount); // 1
}
}
关键点解释:
staticCount是静态字段,所有Counter实例共享同一个副本- 每次创建新对象时,静态计数器会持续递增(最终为3)
- 实例字段
instanceCount每个对象都有独立副本(始终为1) - 通过类名直接访问更规范:
Counter.staticCount
运行结果会清晰展示静态字段的共享特性,而实例字段各自独立。

浙公网安备 33010602011771号