学习总结1(final浅学)
Final作用
在编写程序中,不变的数据叫做常量,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
关键字声明的类是无法被继承的。