在java中,成员变量在没有明确指定值的时候都会被编译器赋予一个默认值,就像下面表格所示:
数据类型 | 初始值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0F |
double | 0.0D |
char | \u0000 |
boolean | false |
类 | null |
public class Car {
private final String color;
}
结果不能通过编译
若是含有多个构造函数,就要确保final 变量被初始化,
public class Car {
private final String color;
public Car() {
this.color = "red";
}
public Car(String color) {
}
}
当然也可以通过代码块对其进行初始化
public class Car {
private final String color;
{
color = "red";
}
}
而且,在代码块会先于构造函数执行,如下所示:
public class Car {
private final String color;
public Car() {
this.color = "red";
}
public Car(String color) {
}
{
color = "red";
}
}