在Java中为静态最终变量赋值
在Java中,可以在两个位置为非静态最终变量分配一个值。
在申报时。
在构造函数中。
示例
public class Tester {
final int A;
//方案1:在声明时分配
final int B = 2;
public Tester() {
//方案2:在构造函数中分配
A = 1;
}
public void display() {
System.out.println(A + ", " + B);
}
public static void main(String[] args) {
Tester tester = new Tester();
tester.display();
}
}输出结果
1, 2
但是,如果是staticfinal,则不能在构造函数中分配变量。编译器将引发编译错误。需要在静态块中或在声明时分配静态最终变量。因此,可以在以下两个位置为静态最终变量分配一个值。
在申报时。
在静态块中。
示例
public class Tester {
final int A;
//方案1:在声明时分配
final int B = 2;
public Tester() {
//方案2:在构造函数中分配
A = 1;
}
public void display() {
System.out.println(A + ", " + B);
}
public static void main(String[] args) {
Tester tester = new Tester();
tester.display();
}
}输出结果
1, 2
静态最终变量的这种行为背后的原因很简单。静态最终值在对象之间是通用的,如果允许在构造函数中分配静态最终值,则在创建对象期间,此变量会针对每个对象而更改,因此不会分配一次。
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短