final的意思是最终,不可变

final是个关键字,可以用来修饰类,类的成员,以及局部变量

final 变量

final 表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量必须显式指定初始值。

final 修饰符通常和 static 修饰符一起使用来创建类常量。

public class Test{
  final int value = 10;
  // 下面是声明常量的实例
  public static final int BOXWIDTH = 6;
  static final String TITLE = "Manager";
 
  public void changeValue(){
     value = 12; //将输出一个错误
  }
}

final修饰局部变量:一次赋值,终生不变,又被称作为常量

final修饰引用变量问题:引用变量保存的内存地址,终生不变

final修饰成员变量,成员变量,在堆内存中是有默认值的,而修饰的成员变量固定的不是内存的默认值,固定的是成员变量的手动赋值,所以用final修饰的成员变量一定要手动赋初始值,否则报错

成员变量的赋值有两种方式:一种是在定义的时候直接赋值,另一种方式采用构造方式赋值也可以,但是必须保证被final赋值的成员变量,只能被赋值一次,绝不能赋值两次

成员变量需要在创建对象前赋值,否则报错

final 修饰变量一般命名规则是所有字母都是大写,单词之间用下划线隔开,例:MAX_VALUE

final 可以在局部代码块中使用

final 方法

父类中的 final 方法可以被子类继承,但是不能被子类重写。

声明 final 方法的主要目的是防止该方法的内容被修改。

如下所示,使用 final 修饰符声明方法。

public class Test{
    public final void changeName(){
       // 方法体
    }
}