文档介绍:Final 修饰符
Final 关键字可以修饰类、变量、和方法,用于表示它修饰的 类、变量、方法不可改变。
1, final 修饰成员变量 成员变量是随类的初始化或随对象的初始化而初始化。当 类初始化时, 系统会为该类的属性分配内存空间, 并分配默认值, 当初始化对象时, 系统会为该对象的实例属性分配内存空间, 并 分配默认值。也就是说,当执行静态初始化块时,可以给该类的 属性赋初始值, 当执行普通初始化块、 构造器时可对实例属性赋 初始值。 因此, 成员变量的初始值可以在定义该变量时指定默认 值,可以在初始化块、构造器中指定初始值,否则 ,成员变量 的初始值将是由系统自动分配的初始值。
对于 final 修饰的成员变量而言, 一旦有了初始值, 就不能 重新赋值, 因此不可在普通方法中对成员变量重新赋值, 成员变 量只能在只能在定义该变量时指定默认值,或者在静态初始化 块、初始化块、构造器中为成员变量指定初始值,如果即没有在 定义该变量时指定初始值, 也没有在初始化块, 构造器中指定初 始值,则改变量的值一直是 0、 false null
因此 final 修饰的类是属性,实例属性修改的地方归纳如 下:
类属性:可在静态初始化快中,声明该属性时指定初 始值。
实力属性:可在非静态初始化块、声明该属性、构造 器中指定初始值。
2、 final 修饰的基本类型和引用类型变量的区别
Final 修饰的基本类型变量时,不能对基本变量重新赋 值,因此基本类型变量不能被改变。但对引用类型而言,它保存 的仅仅是一个引用, final 只保证这个引用的引用地址不会被改 变,即一直引用同一对象, 但这个对象完全可以改变。