final
不可改變。可以用於修飾類、方法和變量。
使用方法
類
final class 類名 { }
1)該類不能有任何子類
2)該類所有成員方法不能進行覆蓋重寫
方法
修飾符 final 返回值類型 方法名(參數列表){
//方法體
}
1)該方法不能被覆蓋重寫
局部變量
基本類型
final int a; //right
a=1;//right
a=2;//wrong
final修飾的局部變量只能賦值一次,變量中數據不可改變
引用類型
final User u = new User(); // 創建 另一個 User對象
u = new User(); // 報錯,指向了新的對象,地址值改變。
final修飾後的引用變量只能指向一個對象,地址不能再更改。
不影響對象內部的成員變量值的 修改
成員變量
使用final關鍵字修飾,變量依然不可變
變量初始化
顯示初始化:
public class User {
final String USERNAME = "張三";
private int age;
}
構造方法初始化:
public class User {
final String USERNAME ;
private int age;
public User(String username, int age) {
this.USERNAME = username;
this.age = age;
}
}
注意:
1)成員變量具有默認值,使用final之後必須手動賦值
2)被final修飾的常量名稱,一般都有書寫規範,所有字母都大寫
3)兩種初始化只能選一個