一:final修饰特点
- 修饰类,类不能被继承。
- 修饰变量,变量就变成了常量,只能被赋值一次。
- 修饰方法,方法不能被重写。
final int a = 12;
//a = 11;不可以继续再赋值
final修饰变量叫做常量,一般会与public static共用,这是为了提高计算机的性能,final修饰的变量也因此不用创建对象再赋值了。
常量命名规范,如果是一个单词,所有字母大写,如果是多个单词,每个单词都大写,中间用下划线隔开,如 public static final MAX_Years = 2019;
二:final修饰局部变量的特性
- 修饰基本类型,是值不能被改变
- 修饰引用类型,是地址值不能被改变,对象中的属性可以改变
- 修饰引用类型不可以再New,因为new代表创建一个新的地址。
//修饰引用类型(cat指向堆里面的一个地址)
final Cat cat = new Cat("小花",4);
// 不可以在new一个cat如: cat = new Cat("小黑",4);
cat.name = "小黑";//但是可以修改属性
cat.say();
三:final修饰变量的初始化
- 直接赋值
public static final double PI = 3.14;
- 通过构造方法赋值,此时在变量前不要添加public staitc
final double PI;
public Circle(){
PI = 3.14;
}