当final用来修饰变量时:
主要分为两种情况:
1.用final修饰基本数据类型
2.用final修饰引用数据类型
第一种情况,修饰基本数据类型,这时参数的值在方法体内是不能被修改的,即不能被重新赋值。否则编译就不通过。
第二种情况,修饰引用类型。这时参数变量所引用的对象是不能被改变的。但是对于引用数据类型,如果修改其属性的话是完全可以的。
Java中final变量在声明时必须初始化,否则编译错误。
当然你也可以在类构造器中初始化
private final int i;
FinalDemo(){
i = 1;
}
如果变量是静态的还可以在静态代码块中初始化
private static final int i;
static {
i = 1;
}
当final修饰方法时:
final表示的意思是最终的,也就是父类中的final方法子类是不能对它重写的
当final修饰类时:
它表示最终类,也就是不能被继承,而且final和abstract关键字是不能同时修饰一个类或者方法的