1,final 的作用:(表示,这个内容就是最终的)
- 被final修饰的方法,不能被重写。
- 被final修饰的变量,就是 常量!(能赋一次值,之后都不可变)
被final修饰的父类,不能再作为父类被子类继承了。(不能被继承)
2,final 修饰 数据类型变量:
变量 是 基本数据类型 :
final修饰的基本数据类型就是 常量 ,因为 数据值不能改变。
- 变量 是 引用数据类型:
final修饰的引用数据类型,地址值是不可以改变的,但是地址里面的内容是可以改变的。
//final 修饰引用类型变量。
final int[] arr = new arr(){11,22,33};
//里面的内容可以改变;
arr[0]=100;
//这里报错,因为改变的是引用类型的地址;
arr = new arr2(){22,33,44};
3,final 修饰 局部变量
4,final 修饰 的 特点:
- final 修饰 的 类:这个类不能被继承;(表明是最终类)
- final 修饰 的 方法:表明这个方法是最终 方法,不能被重写;
- final 修饰 的 变量: 就是代表 常量,只能对其进行一次赋值;(详见,上述第2点)(注意:定义的时候一定要及时赋值或者写个构造方法给他赋值,否则会被默认生成的无参构造器赋予默认值,在以后就不能修改了);
- 注意:当常量值在构造方法中赋值时,有多个构造器,如常量没有在静态代码块内,那所有构造器中都要给常量赋值一次,保证调用每个构造器都存在该常量值;