1.final修饰类:表示该类不可继承,final不能修饰interface接口
2.final修饰方法:表示该方法不能被子类覆盖(即子类不能重写父类的final方法,可以继承),final不能修饰构造函数
3.final修饰字段属性:表示属性值第一次初始化后不能被修改,final属性可以直接初始化或在构造函数中初始化,如果属性是直接初始化,则其值不能被其它函数(包括构造函数)修改
4.final修饰函数参数,参数值不能被函数修改
5.final修饰函数中的局部变量,局部变量被第一次初始化后不能被修改
final修饰的并不是一定要是固定常量,可以是一个表达式,如下代码- import java.util.Random;
- public class FinalTest {
- // 47作为随机种子,为的就是产生随机数。
- private static Random rand = new Random(47);
- private final int a = rand.nextInt(20);
- public static void main(String[] args) {
- FinalTest sf = new FinalTest();
- System.out.println("sf : " + "a=" + sf.a);
- System.out.println("------------------------------");
- FinalTest sf1 = new FinalTest();
- System.out.println("sf1 : " + "a=" + sf1.a);
- }
- }
复制代码 sf : a=18
------------------------------
sf1 : a=15
|