Java学习之路--常量初始化相关问题

看这段代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Test{

static final int a = 1;
static final int b;

static{
b = 1;
}

// ------------------------- //

final int aa = 1;
final int bb;
final int cc;

{
bb = 1;
}

Test(){
cc = 1;
// b = 1; ERROR
}

// ------------------------- //
// {
// b = 1; ERROR
// }

// static{
// bb = 1; ERROR
// }

}

常量初始化问题总结:

  • 静态常量初始化:
    • 定义时赋值
    • 静态代码快中赋值
  • 成员常量初始化:
    • 定义时赋值
    • 非静态代码快赋值
    • 构造函数中赋值
  • 注意出错情况:
    • 在非静态代码快中或构造函数中为静态常量赋值
    • 在静态代码快中为成员常量赋值
文章作者: GeYu
文章链接: https://nuistgy.github.io/2022/11/16/Java学习之路(43)/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yu's Blog