(1)修饰变量
用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。final修饰的变量可以先声明,后赋值。
final修饰基本类型时,起到常量的作用,基本类型的值不可变。
final修饰引用类型时,不能再指向其他的对象,但被引用的对象的值是可以改变的(引用变量的值
实际上是它所引用的对象的地址)。
当用final作用于类的成员变量时,成员变量(局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值。
(2)修饰方法参数
编写方法时,可以在参数前面添加final关键字,它表示在整个方法中,不会(实际上是不能)改变参数的值,具体类似于修饰数据。
即不能改变参数的值,但是可以改变引用类型参数的对象的值。同时,即使没有final的修饰,参数的改变也不会影响到方法外的变量。
(3)修饰方法
final关键字修饰方法,它表示该方法不能被覆盖(重写)。另外,类中所有的private方法都隐式地指定为是final的,由于无法在类外使用private方法,所以也就无法覆盖它。此时可以在子类中定义相同的方法名和参数,这种情况不再产生重写与final的矛盾,而是在子类中重新定义了新的方法。可以对private方法添加final修饰符,但并没有添加任何额外意义。
(4)修饰类
用final修饰的类是无法被继承的。且final类中的所有成员方法都会被隐式地指定为final方法。