对被final修饰的变量进行赋值的几种方法
- 被final修饰的变量,有三种赋值方式。
- 被final static 修饰的变量,有两种赋值方式。
- 在继续前,了解以下内容:
这是精华:
因为当类被加载进内存的时候,这个属性并没有给其分配内存空间,而只是定义了一个变量,只有当类被实例化的时候这个属性才被分配内存空间,而实例化的时候同时执行了构造函数,所以属性被初始化了,也就符合了当它被分配内存空间的时候就需要初始化,以后不再改变的条件。
被final修饰的变量
- 在定义时直接赋值。
fianl int a = 1;
- 声明时不赋值,在constructor中赋值。
public class Test {
private int a;
public Test() {
a = 1;
}
}
- 声明时不赋值,在构造代码块中赋值,个人感觉还不如写在构造函数里,因此就不赘述了。
被final static修饰的变量
1.在定义时直接赋值.
final static int a = 1;
2. 声明时不赋值,在静态代码块中赋值:
public class Test {
public static int a;
static {
a = 1;
}
}