在Java中,final关键字可以用于修饰类、方法和变量。
final修饰类:final修饰的类是不可被继承的,即该类不能有子类。例如:final class MyClass {// 类的内容}
final修饰方法:final修饰的方法不能被子类重写。例如:class MyClass {final void myMethod() {// 方法的内容}}
final修饰变量:final修饰的变量是常量,一旦被赋值后就不能再改变其值。final变量可以在声明时初始化,也可以在构造方法中初始化。例如:class MyClass {final int myVariable = 10; // 在声明时初始化final int myVariable;MyClass() {myVariable = 20; // 在构造方法中初始化}}
需要注意的是,对于引用类型的final变量,其引用地址是不可变的,但是该引用指向的对象的状态可以改变。例如:
class MyClass {final List<String> myList = new ArrayList<>();void addToList(String item) {myList.add(item); // 可以向列表中添加元素}}
在上面的例子中,myList是一个final变量,但是可以通过调用addToList方法向列表中添加元素,因为myList引用的ArrayList对象的状态是可以改变的。