目录
一、介绍
final关键字是最终的意思,可以修饰(方法,类,变量)
二、final修饰的特点
- 修饰方法,表明该方法是最终方法,不能重写;
public final void printMessage() {
System.out.println("Hello");
}
public class SubClass extends SuperClass {
public void printMessage() { // 编译错误,修饰方法,表明该方法是最终方法,不能重写;
System.out.println("World");
}
}
- 修饰类,表明该类是最终类,不能被继承;
public final class FinalClass {
// 类的成员和方法
}
public class SubClass extends FinalClass {
// 编译错误,无法继承final修饰的类
// 子类的成员和方法
}
- 修饰变量,表明该变量是常量,不能被再次被赋值;
final int num = 3;
num = 20; // 编译错误,无法修改final修饰的变量的值
- 修饰基本数据类型:数据值不可改变;
public class Main {
public static void main(String[] args) {
final int x = 80;
// x = 10; // 编译错误,修饰基本数据类型:数据值不可改变;
}
}
- 修饰引用数据类型,地址值不可改变,但内容可以改。
public class Main {
public static void main(String[] args) {
final int[] arr = {3, 4, 6};
// arr = new int[]{5, 6, 8}; // 编译错误,修饰引用数据类型,地址值不可改变
arr[0] = 7; // 但内容可以改。
}
}
三、final修饰成员变量的注意事项
- 不允许修饰默认值
- 必须在声明时或在构造方法中进行初始化
四、final修饰的命名规范
- 如果变量名是一个单词,所有字母大写
- 如果是多个单词,所有字母大写,中间用下划线分割 MAX_VALUEMAX_VALUE