在编写程序中,不变的数据叫做常量,java中用fianl关键字修饰,其只能进行一次赋值,在其存在的过程中值不会改变。其次,final会告诉编译器,这个值不会修改,编译器可能会在编译时期就对该数据进行替换或执行计算。但是在针对基本类型和引用类型时,final关键字效果会有细微差别。(摘自教科书P99)
引用书上的例子:
class Value{
int v;
public Value(int v){
this.v=v;//关键字this代表一个引用,方法体内使用成员变量用this.成员变量名
}
}
public class FinalTest{
final int f1=1;
final int f2;//先定义
public FinalTest(){
f2=2;//后赋值
}
public static void main(String[] args){
final int value1=1;
final double value2;
value2=2.0;
final Value value3=new Value(1);//用到了class类
value3.v=4;
}
}
分析:
- value1在经过赋值后不可改变,其作用是修饰常量value2先定义后赋值value3是一个引用变量,用final修饰限定了引用不可改变
final关键字总结:
- 修饰数据,包括成员变量[1]和局部变量[2]。该变量只能被赋值一次并且它的值不能被改变。对于成员变量必须在声明时或者构造方法中对其赋值;用来修饰方法参数,表示在变量生存期内其值不可以被改变;修饰方法,表示其无法被重写;修饰类,表示其无法被继承 [^3]。
final声明方法的用法
修饰方法参数
编写方法时,参数前加final关键字,其表示在整个方法中,参数值不会被改变
修饰方法
修饰方法表示该方法不可被覆盖
使用final关键字声明的类是无法被继承的。
总结:现在final使用频率不是很高,然后还需要学习一下this用法,并且基础知识还不是非常熟练,变量相关还需加强复习,现在还不能熟练运用“活跃”的方法,只会写“死”的,还需要将书本上的代码多复习几遍,拟好一定的计划。


