一. final关键字
学习了继承后,我们知道,子类可以在父类的基础上改写父类的内容,比如方法重写
如果有一个方法我不想让别人去改写里面内容,那该怎么办呢?
Java提供了final关键字,表示修饰的内容不可变
1. final修饰的类
final修饰的类不能被继承
格式:
修饰符 final class 类名{}
2. final修饰的方法
final修饰的方法不能被重写
格式:
修饰符 final 返回值类型 方法名{}
3.final修饰的变量
final修饰的变量是常量
⑴常量
Ⅰ.常量,就是不能改变值的量
Ⅱ.常量的命名规则:
①单个单词全部大写
②多个单词,全部大写,单词之间用下划线隔开
⑵修饰基本数据类型
基本数据类型你还记得吗?
byte, short, int, long, char, boolean, float, double
被final修饰的基本数据类型变量,被记录的值不能发生改变!
如图:我定义了一个NUM常量,我想要更改被记录的值,程序直接保错
⑶修饰引用数据类型
那根据上面的结论,被final修饰的引用数据类型也是无法修改值的,那真的是这样吗?
如图:我定义了一个final修饰的数组,并初始化值都为1,那我试着更改里面的值,运行程序发现程序没有报错,而是可以更改的!
因此,final修饰的引用数据类型与基本数据类型是不相同的
被final修饰的引用数据类型变量,被记录的值可以发生改变,但是地址值不变!
如图:我开始创建了一个数组,但我想要更改数组的地址值,所以又new了一个新数组赋值给他,但程序报错了
若有不足,错误之处,望指出更正₍˄·͈༝·͈˄*₎◞ ̑̑