final是最终的意思,修饰类时表示不能被继承,修饰方法时表示不能被重写,修饰变量时表示只能被赋值一次。
1.修饰类:
原本可以继承,加上final不可继承:
通常一些工具类会加final关键字
2.修饰方法
原本可以重写,加上final后不可以被重写:
3.修饰变量
加上final后:
变量会分为局部变量和成员变量,成员变量分为静态成员变量和实例成员变量
静态成员变量:
加上final后必须对其赋值,不然会报错:
4.注意事项
final修饰基本类型的变量,变量存储的数据不能被改变
final修饰引用类型的变量,变量存储的地址不能被改变,但地址所指对象的内容可以改变比如数组
字符串是引用类型变量,但是加了final修饰后,字符串的内容不能改变。这是因为final修饰的变量必须赋初值,并且作为一个常量不能修改值。在Java中,字符串是不可变的,即一旦创建就不能被修改。当我们对字符串进行修改时,实际上是创建了一个新的字符串对象,而原来的字符串对象保持不变。因此,加了final修饰后,字符串的内容不能改变。