final
被final修饰的类不可被继承(如String)
被final修饰的方法不能被重写(继承时)
被final修饰的变量不可变(只永许赋值一次) final修饰引用变量,变量里存的地址不可改变,但是地址所指向的对象里面的内容是可以改变的。成员变量有默认值,在new的时候给成员变量赋默认值;局部变量没有默认值,作用范围从定义时开始到代码块结束。
那么final修饰的成员变量和局部变量有什么不同呢?
final修饰局部变量:只可赋值一次。
//此时这个a为局部变量
//a没有默认值
final int a;
//第一次赋值(也可以在使用时赋值)a=10
a=10;
final修饰成员变量 :要么在声明时赋值,要么在构造方法中赋值
//此时b为成员变量
//声明时赋值
final b = 12;
//----------------------------------
//----------------------------------
//此时b为成员变量
//在构造方法中赋值
final b;
A(){
b=12;
}