为什么Final变量不需要在java的main方法中初始化?

KVK*_*KVK 12 java final

当我只是尝试用Java做一些程序时.我尝试使用final变量,我知道final变量必须在声明时初始化,但在main方法中它接受final变量而不进行初始化.我不知道是什么原因.任何人都可以告诉我原因.

谢谢

码:

class name
{
     final int b; //here shows error
     public static void main(String args[])
    {
        final int a; // here no error... why?
        System.out.println("hai");
    }
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*INO 11

对于实例变量水平

  • 最终变量只能初始化一次.

  • 必须在构造函数结束之前初始化类级别的最终变量.

对于本地(方法)级别

  • 方法级别的最终变量只能初始化一次.
  • 必须在使用之前对其进行初始化

所以基本上如果你不使用本地最终变量,你也可以跳过它的初始化.

如果变量是实例级别,则必须在定义或costructor主体中初始化它.

在您的代码中,您有一个final int b永远不会初始化的实例变量,因此您有错误.

您还有一个final int a从未使用过的局部变量.所以你没有该变量的错误.