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類