目录

final变量

修饰变量

修饰常量 

final方法

final类

final对象


final变量

初始化一次后值不可变。

修饰变量


被final修饰的变量必须显示的初始化,初始化可以以三种方式:

1)定义时初始化,2)在构造器中设置值,3)在非静态块中为final实例变量设置值。



被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的。



如果一个类有多个构造方法就要保证在每个构造方法中都要完成对该final类型成员变量的初始化工作

JAVA系列:final变量、方法、类。对象时的不同意义_子类

修饰常量 

static final修饰的常量​(需要在​类初始化阶段​完成赋值)


一种是在声明的时候直接显式的初始化,

另一种是在static块中完成初始化。

不能在构造器中完成初始化(​类的实例化阶段​)。


JAVA系列:final变量、方法、类。对象时的不同意义_构造方法_02


final方法

表示方法不可被子类重写(覆盖)


如果父类中的方法需要被外部类调用, 则必须以public修饰, 但又不希望子类重写该方法, 可以使用final修饰符.




final类

类不能被继承,内部的方法和变量都变成final类型

JAVA系列:final变量、方法、类。对象时的不同意义_子类_03


final对象

指对象的引用不可变,但是对象的值可变,即指向的是同一个对象,但是对象内部的值可以修改。

JAVA系列:final变量、方法、类。对象时的不同意义_构造方法_04

JAVA系列:final变量、方法、类。对象时的不同意义_构造方法_05