Java的final关键字
>引言
>
>Java中的final 与C++中的const 差不多,其代表修饰的变量不可改变。不过final 可以修饰类
final修饰有下面几种:
- 修饰局部变量
- 修饰非局部变量
- 修饰函数
- 修饰类
1.修饰局部变量
final修饰的局部变量是常量,只能赋值一次。
public class Kit {
public static void main(String[] arg) {
final int a;
a=10;//不能再修改了
//a=100;//这里报错,初始化后的值不能被修改
final int b=100;//不能再修改了
}
}
2.修饰非局部变量
用final定义成员变量的必须对它进行初始化(也可以在构造函数中初始化),之后该变量的值不能被改变。
这是一个错误的示范:
package test;
class A {
int a;
public final int PI;
A(){};//errors:The blank final field PI may not have been initialized
public String toString() {
return "This class A of toString function";
}
}
3.修饰方法
用final修饰的方法不能被子类重写。
>这里与c++稍有不同,c++中用const修饰成员函数不能修改该对象成员的值。
4.修饰类
用final修饰的类被称为最终类,该类不能被继承。比如String类