final
final即最终的。
可修饰类,属性,方法或局部变量。但不可对构造器使用。
final的使用情况:
对类使用后类不可被继承,
对类中某局部变量使用后就成了一个常量,不可被修改。
对类中方法使用后,该方法不可被重写。
对类的某个属性的值,如果不想被修改,也可使用final。
一、Final细节1
1.Final修饰属性后被称为常量,一般用XXX_XXX_XXX形式。
如COUNT_SUM
,PI
。
2.Final修饰的属性在定义时必须赋初值,赋值后不可被修改,并且可在如下位置之一赋值:
(1)定义时,如private final double = TAX_RATE
;
(2)在代码块中{}
(3)在构造器中。
3.如Final修饰静态属性,则初始化位置:
(1)在定义时。
(2)在静态代码块中static{}。(不能在构造器使用,也不能在非静态代码块中)因为构造方法在创建对象时才会触发,静态变量的初始化是在类加载时就要给值。
4.final类不能继承,但能实例化对象。
若是非final类,有final方法。该类可以继承,但不能重写此方法。
二、Final细节2
5.final不能修饰构造方法。
6.final往往和static搭配使用,效率更高。(final加上static修饰的属性不会导致类的加载,底层编译器进行了优化处理。)
7.若该类用final修饰后,其内的方法就没必要用final了。
8.包装类(integer,Double,Float,Boolean)还有String等都是final。