在构造函数中初始化静态变量时,为什么Java不给出错误?

阿迪亚(Aditya Bharadwaj):

我知道静态变量在所有实例中都是通用的,实例变量对于不同的变量可能会有所不同。但是,当我在构造函数中初始化静态变量时,不同实例的静态变量可能会有所不同。为什么我这样做时Java没有给我一个错误,如果在构造函数中对其进行初始化时更改了静态变量,那有什么意义呢?

他们是 :

在某些情况下,在构造函数中更新静态变量的值可能很有意义。

我能想到的第一个示例是一个static计数器变量,该变量对给定类创建的实例数进行计数。您可以在构造函数中增加该变量。

public class SomeClass
{
    private static int instanceCounter = 0;

    public SomeClass()
    {
        ...
        instanceCounter++;
        ...
    }
}

另一个示例是static变量的延迟初始化您可能只想在初始化static类的第一个实例时初始化变量(这意味着在构造函数内部)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在静态构造函数中初始化静态变量而不是直接赋值的好处是什么?

为什么我们不能在构造函数初始化列表中初始化静态变量,但可以在构造函数主体中初始化

构造函数是否需要初始化静态变量?

为什么Java不允许在构造函数中初始化静态最终变量(例如static final int d)?

构造函数执行顺序/顺序:函数中静态变量(类实例)的依赖初始化

在具有私有构造函数的类中初始化静态变量

为什么超类中的静态块/静态变量在main之前初始化?

模板函数中的C ++静态变量初始化

在函数中赋值与初始化静态变量有什么不同的效果?

静态变量初始化java

Java中静态变量的初始化

了解Java中的静态变量初始化

我们可以在构造函数内部初始化静态变量吗?

为什么不能用其他变量的值初始化静态变量?

为什么catch块给出了一个错误,并且变量未在Java中初始化

Java中错误“未在默认构造函数中初始化变量Y”背后的内部过程是什么?

用函数的参数初始化静态变量

C函数内部的静态变量初始化

我们可以在方法内部创建IIB(实例初始化块)吗?如果我们不能为什么不给出编译时错误呢?

为什么要在声明静态变量之前对其进行初始化

为什么在这里允许使用非const初始化静态变量?

为什么const指针差异不能用作静态变量的初始化程序?

为什么未初始化模板类的嵌入式静态变量?

为什么非常数静态变量需要在类外部初始化?

函数内部静态变量的初始化会发生什么

在构造函数中初始化变量后进行验证:为什么不这样做呢?

为什么GCC在初始化为0时不分配静态变量

使用Jackson反序列化xml时未初始化Java静态变量

静态变量在函数中调用,给出错误未定义的codeigniter php