final 用于保护数据不易被更改,提高类代码的安全性
这边是方法用final修饰 方法不能重写
public class UsingFinal extends print {
public static void main(String[] args) {
}
@Override
void showPrint() {
super.showPrint();
}
//这边 输入void 只找到了showPrint()方法
}
class print{
void showPrint(){
System.out.println("print.showPrint");
}
final void showPrint1(){
System.out.println("print.showPrint1");
}
}
这边是方法用final修饰 方法不能重写
这边是数组用final修饰不能重新指定一个数组对象,但是可以修改数组的内容
int [] arrayset = new int[]{9,8};
arrayset = new int[]{10,6,3,5,6};
System.out.println(Arrays.toString(arrayset));//输出值 [10, 6, 3, 5, 6]
final int[] array =new int[]{1};
array[0]=2;//正常无错误
array = new int[]{9,8,9};//报错 无法重新开一个数组对象
这边基础类型变量用final修饰不能重新赋值
final int num=10;
num =23;//报错
特殊的StringBuilder
append和insert等功能是可以使用的,但重新新建一个StringBuilder就报错
StringBuilder stringBuilder1 = new StringBuilder("亲爱的");
stringBuilder1 = new StringBuilder("没事");
System.out.println(stringBuilder1);//输出值 没事
final StringBuilder stringBuilder = new StringBuilder("你好");
stringBuilder.append("世界");
stringBuilder.insert(0,"你好");
stringBuilder = new StringBuilder("大家好");//报错