1. final
变量
定义常量:
- 当你给一个变量加上
final
关键字后,这个变量的值在初始化后就不能再改变了。 - 这种变量常被用来定义常量,比如
final int MAX_SIZE = 100;
。一旦赋值,再也不能修改MAX_SIZE
的值。
实例变量:
- 如果一个类的成员变量被声明为
final
,那么必须在定义时或在构造器中对其赋值。 - 例如,你可以在类的构造函数中初始化一个
final
变量,这样每个对象都会有一个独立的、不可变的该变量。
静态变量:
final
关键字也可以用在静态变量上,这样的变量在类加载时就会被初始化,并且其值不能再改变。- 一般用来定义常量,比如
public static final double PI = 3.14159;
。
2. final
方法
防止方法被重写:
- 当一个方法被声明为
final
,意味着这个方法不能在子类中被重写。 - 这在设计某些关键功能时特别有用,例如确保某些核心逻辑不被修改。
举个例子,假设你有一个类包含了一个计算逻辑,并且你不希望子类改变这个逻辑,那么你可以将这个方法声明为final
。
3. final
类
防止类被继承:
- 如果一个类被声明为
final
,那么这个类不能被继承。 - 例如,Java标准库中的
string
类就是一个final
类。这样做的目的是为了确保类的安全性和稳定性,不希望其行为被改变。
总结
-
final
变量:一旦赋值,不可改变。- 局部变量:必须在定义时或在使用前赋值。
- 实例变量:必须在定义时或在构造函数中赋值。
- 静态变量:通常用于定义常量,必须在类加载时赋值。
-
final
方法:不能被子类重写,确保某些关键逻辑不被改变。 -
final
类:不能被继承,确保类的行为不被改变。
通过使用final
关键字,可以让你的代码更加安全、稳定和易于维护。