在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 亲属登门拜年祝福语简短
13 聚餐朋友喝酒祝福语简短
14 退休送蛋糕祝福语简短
15 50多岁生日简短祝福语
16 朋友贺卡祝福语真诚简短
17 离职横幅升职祝福语简短
18 姑娘生日祝福语简短的话