-
final是一个关键字, 可以修饰类, 修饰字段,修饰方法,修饰局部变量,修饰形参
-
final修饰类表示最终类, 不能被继承
-
final修饰字段(成员变量Field),必须显式初始化(手动:定义时或者在), 不能再修改, 一般final与static同时修饰某个字段,所有字母都大写,称为final常量
-
final修饰方法,不能被子类重写(override), 能被子类继承
-
final修饰局部变量, 一旦初始化就不能再修改, 注意final修饰引用类型变量, 是指这个引用类型变量不能再指向其他对象,可以修改它的属性值
-
final修饰的成员变量存储在堆区
-
一般情况下final与static都是同时使用的
-
如果final修饰的是参数,能否在方法里给这个参数赋值?
public void method1(final int j) { j = 5; //这个能否执行? }
看起来好像在函数method1里参数j只赋值了一次,但是实际上使用method1的是下面这种情况
public class Test { public void method1(final int j) { j = 5; //这个能否执行? } public static void main(String[] args) { method1(10); //参数在函数被调用的时候就已经赋值了,在函数体里面的赋值是第二次赋值 } }