final
2018-12-19 本文已影响0人
以梦为马驾驾驾
final 作为关键字,可以作用于类,方法,数据域:
作用于类
此类不可被继承,类中方法默认是final。
作用于方法
此方法不可被重载,不可被重写,可以被继承。
但是不可作用于构造方法。
private 方法隐式为final方法
作用于变量:
1. 申明后使用前,必须赋值
2. 不可更改具体分为两种 :引用类型和基本类型,前者是指不可更改指向所以申明时候不可赋值null,可以留空,
但是可以更改具体所指向对象的数据状态,后者仅仅可以被赋值一次,一旦赋值不可更改 。
3. 成员变量,通常是类的成员变量,必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了 。如若类定义时的申明未赋值,那么实例化对象的时候最好赋值,不然不能保证在使用前它一定被赋值过。
4. 参数变量,方法的参数变量,final Object i,i不可转移自己的指向到其他对象,基本类型 final int j ;j++ 错误。
5. 局部变量,在需要的时候赋值。
6. final变量会被编译器当成编译常量,相当于直接访问的这个常量,不需要在运行时确定,final String s = "h"(必须是明确赋值的,即编译器就知道的,如果是一个返回string的方法则还是运行时) ; String a = "h";s == a ;false!