全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)常見(jiàn)問(wèn)題正文

final在Java中有什么作用?

更新時(shí)間:2023-07-12 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在Java中,關(guān)鍵字final可以應(yīng)用于變量、方法和類(lèi),具有不同的作用。下面我將詳細(xì)說(shuō)明每個(gè)方面的作用,并提供相關(guān)的代碼演示。

  1.final變量:

  ·當(dāng)應(yīng)用于變量時(shí),final關(guān)鍵字表示該變量的值不能被修改,即它是一個(gè)常量。一旦為final變量分配了一個(gè)初始值,就無(wú)法再更改它。

  ·final變量必須在聲明時(shí)進(jìn)行初始化,可以在聲明時(shí)直接賦值或在構(gòu)造函數(shù)中賦值。

  ·final變量通常用大寫(xiě)字母命名,多個(gè)單詞之間用下劃線(xiàn)分隔。

  示例代碼:

public class FinalVariableExample {
    public static void main(String[] args) {
        final int MAX_COUNT = 10;
        // MAX_COUNT = 20; // 編譯錯(cuò)誤,無(wú)法修改final變量的值
        System.out.println(MAX_COUNT);
    }
}

  2.final方法:

  ·當(dāng)應(yīng)用于方法時(shí),final關(guān)鍵字表示該方法不能被子類(lèi)重寫(xiě)。即子類(lèi)無(wú)法對(duì)final方法進(jìn)行更改或擴(kuò)展。

  ·final方法對(duì)于類(lèi)設(shè)計(jì)的穩(wěn)定性和安全性很有用,可以防止子類(lèi)改變父類(lèi)的關(guān)鍵邏輯。

  示例代碼:

public class FinalMethodExample {
    public final void printMessage() {
        System.out.println("Hello, World!");
    }
}

class SubClass extends FinalMethodExample {
    // @Override // 編譯錯(cuò)誤,無(wú)法重寫(xiě)final方法
    public void printMessage() {
        System.out.println("This is a subclass.");
    }
}

  3.final類(lèi):

  ·當(dāng)應(yīng)用于類(lèi)時(shí),final關(guān)鍵字表示該類(lèi)不能被繼承,即它是最終類(lèi),無(wú)法有子類(lèi)。

  ·final類(lèi)通常用于安全或設(shè)計(jì)的考慮,防止其他類(lèi)對(duì)其進(jìn)行擴(kuò)展或修改。

  示例代碼:

public final class FinalClassExample {
    // ...
}

class SubClass extends FinalClassExample {
    // 編譯錯(cuò)誤,無(wú)法繼承final類(lèi)
}

  這些是final關(guān)鍵字在Java中的主要用法和作用。通過(guò)使用final關(guān)鍵字,可以實(shí)現(xiàn)常量、阻止方法重寫(xiě)和類(lèi)繼承等功能,從而提高代碼的可讀性、可維護(hù)性和安全性。

分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!