Java關鍵字final
作用:
1. 修飾變量;
2. 修飾方法;
3. 修飾類;
特點:
1. 所修飾的變量不能重新賦值;
2. 所修飾的方法不能重寫;
3. 所修飾的類不能被繼承;
語法:
1. 修飾變量:
final 數據類型 變量名稱;
2. 修飾方法:
訪問修飾符 final 數據返回類型 接口類型(參數列表);
3. 修飾類:
final class 類名 {}
說明:
1. 對於基本類型來說,不可變是指變量當中數據不可改變;
2. 對於引用類型來說,不可變是指變量中的地址不可改變;
以下給出一則小Demo示例
package www.jingdong.com.finals.entity;
public class Student {
private String name;
public Student() {
}
public Student(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package www.jingdong.com.finals.test;
import www.jingdong.com.finals.entity.Student;
public class StudentT {
/**
* 引用類型修飾參數驗證!
* @param args
*/
public static void main(String[] args) {
// 實例化Student對象!
final Student stu3 = new Student("1111");
// 打印對象參數 !
System.out.println(stu3.getName());
// 重新賦值對象參數!
stu3.setName("2222");
// 打印對象參數!
System.out.println(stu3.getName());
}
}
package www.jingdong.com.finals.test;
public class StudentT {
/**
* 基本類型修飾參數驗證!
* @param args
*/
public static void main(String[] args) {
// 初始化參數!
final int num = 22;
// 打印參數 !
System.out.println(num);
// 編譯錯誤;
// num = 696;
// 打印對象參數!
System.out.println(num);
}
}
說明:
3. 對於類、方法來說abstract關鍵字不能同final關鍵字同時出現;
因爲當final關鍵字修飾一個方法的時候這個方法就是一個最終的方法,也就不能被覆蓋重寫;
而當final關鍵字修飾一個類的時候這個類不可能有任何子類;那麼該對象的所有成員方法都將無法進行重寫覆蓋;
由於final所修飾的類不可能被實現其中的成員方法,故而不能被繼承;
反過來說所有的類不能以final修飾的類作爲父類;
以下給出一則小Demo示例
以下給出一則小Demo示例
public final class Fu{}
// 不能使用一個final類來作爲父類
public class Zi /** extends */ Fu{}