final关键字: 代表最终的,不可改变,可以修饰的内容:
final修饰的关键的类: 不可以被继承,不能够有子类 但是有父类
final修饰的方法: 不能被子类覆盖重写
3.变量: 只能赋值一次,不可以进行第二次赋值,变量的值是不可以发生改变的常量
父类没有final修饰的方法,子类重写后的方法可以添加final关键字
final修饰变量:
1.特点: 只能赋值一次,不可以进行第二次赋值,变量的值是不可以发生改变的 常量
2.修饰局部变量(方法内部定义的变量):
(1)基本类型: 基本类型变量中存储的具体的数字是不可以被改变的
final int[] arr = new int[]{10,20,30};
System.out.println(Arrays.toString(arr));
(2)引用类型: 存储的对象的地址值,被final修饰后,说明变量存储的对象的地址值是不可以被改变的
但是该地址代表的内存空间中的内容是可以改变的
3.成员变量: 看MyClass03 认为默认值无效,要么显式赋值,要么构造方法中赋值
(1)定义未赋值:
所有构造方法中,必须完成对final修饰的变量的赋值
所有成员方法中,不能修改final修饰的变量的值
public class Demo03FinalVar2 {
String name;
final int num;
public Demo03FinalVar2() {
num = 10;
}
}
(2)定义并赋值:
所有构造方法/成员方法中,不能修改final修饰的变量的值