📜  在Java中为静态最终static final变量分配值

📅  最后修改于: 2020-03-20 00:58:55             🧑  作者: Mango

在Java中为静态最终static final变量分配值:
在Java中,可以在构造函数中或通过声明为非静态最终变量分配值。但是,静态最终变量不能在构造函数中分配值;必须为其声明分配一个值。

例如,以下程序可以正常运行。

class Test {
    // final变量
    final int i;
    Test()
    {
        i = 10;
    }
    // 其他代码部分
}

如果我们将i设为静态final,则必须使用代数赋值给i。

class Test {
    // 静态最终变量
    static final int i;
    static
    {
        i = 10;
    }
    // 其他代码部分
}

由于静态变量在类的所有对象之间共享,因此这种行为是显而易见的。创建新对象将更改相同的静态变量,如果该静态变量是final,则不允许这样做。