java关键字之final

109 阅读1分钟

上一节讲解了static关键字的常见用法,这次讲解一下和static在一起比较常用的关键字final。

final关键字一般有以下几种用法:

  1. final修饰类,表示该类不可以被继承,是最终类
  2. final修饰方法,表示该方法不可以被重写,是该类独有的方法,其子类不可重写
  3. final修饰变量,表明此变量不可以被改变

前两种用法比较容易理解,第三种用法可能会有点疑惑,变量不可以被改变,这个不可以改变的是什么呢是该变量的值还是变量的地址,下面通过一段代码来测试一下:



从图中可以看出,首先是final修饰基本数据类型的变量 值不能够被修改,修饰的方法不能够被重写,而被final修饰的变量TestFinal可以修改其属性,是可以的,但是对变量的引用进行修改,指向其他的对象时会发生错误,同样的图中的int数组也是如此,修改final数组中的元素值可以,但修改数组本身的引用会发生错误,足以证明final修饰的变量,如果是基本数据类型那么值不可以被改变,如果是引用数据类型则其引用不能够被改变。