18-Java|final关键字
概念及总结
final 在 Java 中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作 final,你将不能改变这个引用了,编译器会检查代码,如果试图将变量再次初始化的话,编译器会报编译错误
定义:Java 中,final 表示最终的,final 可以用来修饰的结构:类、方法、变量
- final 用来修饰类:此类不能被其他类所继承。比如:String 类、System 类、StringBuffer 类
- final 修饰方法:表明此方法不能被子类重写。比如:Object 类中的 getClass()
- final 修饰变量:既可以修饰成员变量,也可以修饰局部变量,此时的”变量”其实就变成了”常量”,意味着一旦赋值,就不可更改
- final 修饰成员变量
- 可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化
- final 修饰局部变量:一旦赋值就不能修改
- 方法内声明的局部变量:在调用局部变量前,一定需要赋值。而且一旦赋值,就不可更改
- 方法的形参:在调用此方法时,给形参进行赋值。而且一旦赋值,就不可更改
- final 修饰成员变量
- static final 用来修饰属性:全局常量
final 修饰属性,可赋值位置示例
1 | class AA { |
练习题
final 修饰 x,就不能再修改操作,++x 对 x 进行了自增,改变了 x ,如果改成 return x + 1 就是正确的,因为 x + 1 并未对 x 进行操作,只是返回一个数值
1 | public class Something { |
final 是针对 o 的,o.i++ 不影响,但是如果 o = new Othor() 就会错误,因为改变了 o
1 | public class Something { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小蓝_!
评论