final用于修饰属性、方法和类
final类型有且仅有一次赋值的这样一个约定
修饰类
被final修饰的类无法被继承
修饰方法
- 被final修饰的方法被继承后不能被重写
- final不能修饰构造方法
修饰属性
- 成员变量会自动初始化,但是默认值没有什么意思,java要求被final修饰的成员变量必须赋一个初始值
- 局部变量不会自动初始化,可以只声明不立刻赋值,但是赋值之后不能再赋值
修饰变量,变量就变成了常量,只能被赋值一次
深入:
public class Test{
{
a = 4;
}
private static final int a;
public static void main(String[] args){
System.out.println(a);
}
}
被static final修饰之后,代码编译不通过。我们在访问a的同时,域中的a=4并未执行这样就违背了final类型有且仅有一次赋值的这样一个约定。所以{a=4;}不管是放在声明的代码前还是声明的代码后都无法编译通过。
网友评论