天天看點

static關鍵字和繼承 --> final關鍵字final關鍵字(重點)基本概念使用方式常量的概念

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方法!