这里只讨论final可以修饰的变量,不讨论方法和类。
1、final可以修饰的变量:类变量,成员变量,局部变量。
2、需要注意的是:
(1)不同点:修饰类变量、成员变量:声明变量时必须赋初始值;
修饰局部变量:是不用赋初始值的。因为局部变量在使用前,你一定会给它赋值的,直接调用一个未赋值的局部变量是非法的,所以final修饰的局部变量可以声明时不赋值。
(2)相同点:被final修饰的变量只能被赋值一次。
3、示例代码:
public class TempTest {
//final int a1; //错误提示:变量a1可能没有被初始化
//final static int a2;//错误提示:变量a2可能没有被初始化
final int a3=1;
final static int a4=2;
private void testFinal(){
final int a5;
a5=1;
//a5=2;//错误提示:变量a5可能已经被赋值.
}
}