java 中的错误 "variable Y not initialized in the default constructor" 背后的内部过程是什么?

What is the internal process behind that error "variable Y not initialized in the default constructor" in java?

我想知道那个错误“变量 Y 未在 默认构造函数”内部发生了什么...

static final int y;
public static void main(String[] as){
System.out.println(y);
}
  1. 我使用的是静态变量而不是实例,但我还是有。
  2. 为什么它只在sameline or static block.
  3. 中初始化
  4. 什么是默认构造函数
  1. I've used static variable, not instance, but still I got variable Y not initialized in the default constructor.

该错误具有误导性。默认构造函数部分应该被忽略。其余错误正确。

  1. Why it is only initialized in same line or static block.

必须在 class 投入使用前进行初始化。只有这两个地方可以做到这一点,因此必须在其中一个地方对其进行初始化。

  1. What is the role of default constructor.

如 #1 所述,它在这里没有任何作用。

1. 如果你试图在变量有值之前使用它们,你通常会得到一个 NullPointerException 告诉你这个变量除 null 外没有其他值。

2. 您有 "created" 一个必须在创建对象之前分配的常量。这可以在静态块中完成

static {
   //assignment - no logic here!
}

或直接在 "create".

3. 标准构造函数仅用于创建对象,因为没有分配或逻辑空间 (构造函数中从不逻辑)。除非你改变它。

I'hve used static variable not instance but sill i got

不是因为static关键词;这是因为 final 关键字需要 y 进行初始化。如果您从声明中删除关键字 final,它将毫无问题地编译。

Why it is only initilzed in sameline or static block .

同样,如果它已经被声明为final,它必须用声明初始化。在 static block 中初始化它是行不通的。

What is the roll of default constructor.

勾选Java default constructor