final關鍵字(重點)
基本概念
- final本意為"最終的、不可改變的",可以修飾類、成員方法以及成員變量。
使用方式
- final關鍵字修飾類展現在該類不能被繼承。
- 主要用于防止濫用繼承,如:java.lang.String類等。
- final關鍵字修飾成員方法展現在該方法不能被重寫但可以被繼承。
- 主要用于防止不經意間造成重寫,如:java.text.Dateformat類中format方法等。
- final關鍵字修飾成員變量展現在該變量必須初始化且不能改變。
- 主要用于防止不經意間造成改變,如:java.lang.Thread類中MAX_PRIORITY等。
常量的概念
- 在以後的開發中很少單獨使用final關鍵字來修飾成員變量,通常使用public static final關鍵字共同修飾成員變量來表達常量的含義,常量的命名規範要求是所有字母都要大寫,不同的單詞之間采用下劃線連。
- public static final double PI = 3.14
public class FinalMemberTest {
// private final int cnt = 1; // 顯式初始化
private final int cnt;
/*{
cnt = 2; // 構造塊中進行初始化
}*/
public FinalMemberTest() {
cnt = 3; // 構造方法體中進行初始化
}
public static void main(String[] args) {
// 聲明FinalMemberTest類型的引用指向該類的對象
FinalMemberTest fmt = new FinalMemberTest();
// 列印成員變量的數值
System.out.println("fmt.cnt = " + fmt.cnt); // 0 1 2 3
}
}
顯示結果:fmt.cnt = 3
// ctrl+shift+/ 進行選中内容的多行注釋 ,再來一次取消注釋
// ctrl+/ 進行目前行的單行注釋 ,再來一次取消注釋
public /*final*/ class FinalClass {
public final void show() {
System.out.println("FinalClass類中的show方法!");
}
}
public class SubFinalClass extends FinalClass {
/*@Override
public void show() {
super.show();
}*/
public static void main(String[] args) {
SubFinalClass sfc = new SubFinalClass();
sfc.show();
}
}
顯示結果:FinalClass類中的show方法!