一、final在英语中的意思
final在英语中表示 最终的、不可变更的。
二、final修饰的变量
局部变量:
final修饰的局部变量一旦赋值就不能再次赋值,只能赋值一次。若是再次赋值会报错;
实例变量:
final修饰实例变量,也是只能赋值一次。
final修饰的实例变量,系统不会赋默认值,必须程序员手动赋值。如果不手动赋值,就会报错。
给final修饰的实例变量赋值
1、直接赋值
public class Text{
final double A=10;
}
2、用构造方法赋值(实例变量在构造方法执行的过程中会赋默认值,在构造方法中在系统赋默认值之前赋值就没有问题)
public class Text{
//定义实例变量
final double A;
//构造方法
public Text(){
this.A=50;
}
//或者用带参数构造方法赋值
public Text(double b){
this.A=b;
}
}
3、final修饰的实例变量一般用stastic修饰(此变量叫做常量)
例如:
static final double PI=3.1415926;
常量的命名规范:建议:命名常量单词所有字母都大写,单词与单词之间用下划线链接;
常量的值不能变;常量和静态变量一样都存储在方法区,并且都在类加载的时候初始化;
三、final修饰的方法
final修饰的方法无法被重写(覆盖);
四、final修饰的类
final修饰的类无法被继承;
五、final修饰的引用
final修饰的引用一旦指向一个对象,就不能在重新指向其他对象,虽然指向不能改变,但是该引用指向的对象内部的数据是可以修改的;
例如:
demo a=new demo();
a=new demo1();//编译通过
final demo a=new demo();
a=new demo1(); //编译报错
//提示:Cannot assign a value to final variable 'a'
//定义final修饰的引用
final demo a = new demo();
//通过引用给demo类中的实例变量A赋值
a.A = 20;
//编译通过
总结:final表示最终的、不可变的,无论final修饰什么,都离不开本意。