简介
final 是Java中的一个修饰符,声明 final 方法的主要目的是防止该方法的内容被修改,final 是一个重要的Java语法,对于阅读源码和代码的理解很有帮助 !
1. final的单词理解:最终的,所以一旦被final修饰,就基本不能改变了
2. final可以用来修饰的结构:类、方法、变量
2.1 final修饰类,表示此类不能被继承。
比如:String、StringBuilder、StringBuffer
2.2 final 修饰方法,表示方法不能被重写 。
比如: Object类的getClass()方法
2.3 final修饰变量:既可以修饰成员变量,也可以修饰局部变量。此时的 “变量” 其实已经变成了 “常量” ,意味着一旦赋值,就不可更改。
2.3.1 final 修饰成员变量:被 final 修饰的成员变量只允许3种赋值方式:
- 显式赋值 - 代码块赋值 - 构造器赋值 这3种方法都是一旦赋值,不可更改,其中由于一个构造器将来可以构造一个对象, 所以在一个构造器中赋值后同样不能修改,但是允许多个构造器的。
2.3.2 final 修饰局部变量:一旦被赋值就不能修改
- 方法内声明的局部变量:在调用局部变量前,一定要赋值,而且一旦赋值,就不可更改
- 方法的形参:在调用此方法时给形参赋值,一旦赋值,就不可更改
3. final 与 static 搭配:修饰成员变量时,兼具两者的特点,全局常量。
比如:Math.PI