final关键字可以修饰不同的内容,这些内容仅包括一个变量,一个方法或者一个类,以下是final修饰这些内容的作用: final变量:表示该变量为常量,即只能初始化一次final方法:表示该方法不能被重写 final类:表示该类不可以被继承 final变量 当一个变量被final关键字修饰时,意味着它的值不可以被修改了,也就是说,这个变量表示一个常量。这也意味着final变量必须被初始化。如果一个final变量表示的是一个对象的引用,那么该变量就不能重新表示另一个对象的引用了,但是这个final变量指向的对象的内部状态是可以改变的,例如,我们可以向一个final array或者final collection中增加或者删除元素。另外,使用大写字母和下划线表示一个final变量是个好习惯。 Examples // a final variable final int THRESHOLD = 5; // a blank final variable final int THRESHOLD; // a final static variable PI static final double PI = 3.141592653589793;// a blank final static variable static final double PI; 初始化一个final变量 final变量-萌贝树无坑骗,我们必须初始化一个final变量,否则编译器将会抛出错误。一个final变量只能被初始化一次,可以通过初始化器或者初始化语句对其进行初始化。有三种方法可以初始化一个final变量: 在声明final变量时就对齐初始化,这是最常用的初始化方式。当一个final变量在声明的时候没有被初始化,这个变量就被成为blank final变量,那么下面的两种方法就是初始化一个blank final变量blank finalfinal变量-萌贝树无坑骗,变量可以由instance-initializer代码块或者构造函数进行初始化。如果有多个构造函数,那么这个blank final变量必须在每一个构造函数中都要进行初始化,否则编译时报错。 一个blank final static变量可以在内部static代码块中初始化Examples //初始化final变量的方法 class Test { //直接初始化 final int THRESHOLD = 5; //blank final变量 final int CAPACITY; final int MAXMUM; //blanck static final变量 static final int MINIMUM; //使用初始化器 { CAPATICY = 25; } //使用static代码块 static { MAXMUM = 125; } //使用构造函数 public Test() { MINIMUM = -1; } }