final可以用在类、方法、变量上。
1、final用在类上,表明当前类它不能被继承,没有子类。
2、final用在方法上,表明当前方法不能被override,不能被重写。
3、final用在变量上,表明当前变量是一个终态的变量,是一个常量,这个变量的值一但被赋值后就不能被改变了。
对于final(非static)类型的成员变量的初始化方式:
1、声明变量时直接赋值
2、在构造方法中完成赋值,如果一个类有多个构造方法,就要保证在每个构造方法中都要完成对该final类型变量的初始化工作。
对于final static类型的成员变量的初始化方式: 必须在变量声明时直接赋值
总之,对于final的成员变量,其值在初始化后是不可以再改变的:
当其为原生类型时,这里的“不可变”指的是其值不可变;
当其为引用类型时,这里的“不可变”指的是一经初始化就不能指向其它对象,引用不可变;即指向的存储地址不可修改,但指向的对象本身是可以修改的。 |