JavaSE基础知识——final关键字
目录
- 1. 什么是 final 关键字?
- 2. final 关键字的使用规则
- 3. 参考示例代码
1. 什么是 final 关键字?
- final:最终的
2. final 关键字的使用规则
-
final可以用来修饰的结构:类、方法、变量
-
final 用来修饰一个类: 此类不能被其他类所继承。
比如:String类、System类、StringBuffer类 -
final 用来修饰方法:表明此方法不可以被重写
比如:Object类中getClass(); -
final 用来修饰变量:此时的"变量"就称为是一个常量
- final修饰属性: 可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化
- final修饰局部变量:
尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值 以后,就只能在方法体内使用此形参,但不能进行重新赋值。 - static final 用来修饰属性:全局常量
3. 参考示例代码
public class FinalTest {
final int WIDTH = 0; //final修饰属性,显式初始化赋值
final int LEFT;
final int RIGHT;
// final int DOWN;
{ //使用代码块对final修饰的变量进行赋值
LEFT = 1;
}
public FinalTest(){ //在构造器中对final修饰的属性进行赋值
RIGHT = 2;
}
public FinalTest(int n){
RIGHT = n;
}
// public void setDown(int down){
// this.DOWN = down; // 方法中不能对final关键字修饰的变量进行赋值,原因为final关键字出生时已被构造器给赋值了
// }
public void doWidth(){
// width = 20;
}
public void show(){
final int NUM = 10;//常量
// NUM += 20;//声明为常量之后就不能再进行赋值操作
}
public void show(final int num){
// num = 20;//编译不通过
//使用final修饰形参后,在方法内部只能进行调用,不能进行修改
System.out.println(num);
}
public static void main(String[] args) {
int num = 10;
num = num + 5;
FinalTest test = new FinalTest();
// test.setDown(3);
test.show(10);
}
}
final class FinalA{ //final修饰类:此类不能被其他类所继承
}
//class B extends FinalA{ //错误写法
//
//}
//class C extends String{//String被声明为final类
//
//}
class AA{
public final void show(){ // final修饰方法,子类无法重写该方法
}
}
class BB extends AA{
// public void show(){ //父类中show()方法已被final关键字修饰,无法进行重写
//
// }
}