final关键字
概述
表示最终的,可以修饰类,成员变量,成员方法。
常量
字面值常量
10 0.5 false true ‘a’ “abc” null…
自定义常量
final修饰变量成为常量
局部变量: 可以暂时不赋初始值,但是只能够赋值一次
成员变量: 必须给出初始值
注意点:
final修饰的方法不能够被子类重写
final修饰的类不能够被子类继承
例如: String
final细节: 如果是1.8之前的JDK,那么匿名内部类中访问外界的局部变量需要加final,1.8之后不需要
代码如下所示:
public class FinalDemo01 {
// public static final double E = 2.7182818284590452354;
final int X = 400 ;
public static void main(String[] args) {
final int NUM;
NUM = 200;
System.out.println(Math.E);
int state = 0;
switch (state) {
case GameState.START:
System.out.println("游戏开始");
break;
case GameState.RUNNING:
System.out.println("游戏运行");
break;
case GameState.END:
System.out.println("游戏结束");
break;
default:
break;
}
final int A = 10;
final int B = 20;
System.out.println(A + B);
}
public void show() {
System.out.println(Math.E);
}
}
class GameState {
public static final int START = 0X0000;
public static final int RUNNING = 0X0001;
public static final int END = 0X0002;
}
/*final*/ class Father {
public final void show() {
System.out.println("Father.show()");
}
}
class Son extends Father {
// @Override
// public void show() {
// System.out.println("Son.show()");
// }
}