我知道静态变量在所有实例中都是通用的,实例变量对于不同的变量可能会有所不同。但是,当我在构造函数中初始化静态变量时,不同实例的静态变量可能会有所不同。为什么我这样做时Java没有给我一个错误,如果在构造函数中对其进行初始化时更改了静态变量,那有什么意义呢?
在某些情况下,在构造函数中更新静态变量的值可能很有意义。
我能想到的第一个示例是一个static
计数器变量,该变量对给定类创建的实例数进行计数。您可以在构造函数中增加该变量。
public class SomeClass
{
private static int instanceCounter = 0;
public SomeClass()
{
...
instanceCounter++;
...
}
}
另一个示例是static
变量的延迟初始化。您可能只想在初始化static
类的第一个实例时初始化变量(这意味着在构造函数内部)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句