天天看點

【JAVA】關鍵詞final的作用

                                          關鍵詞final的作用

final這個關鍵字,可以說在開發過程中經常遇到,為了更好的了解它,下面淺談一下自己對final這個關鍵詞的了解

【1】final關鍵字可以用來修飾變量

final修飾變量是我們用到最多的地方,被final修飾的變量,如果是基本資料類型的變量,則一旦被指派後便不可更改。

如果是引用類型的變量,則一旦執行個體化對象後,便不可讓這個變量指向其他對象,但是可以改變該對象裡面的屬性

下面使用代碼進行示範

【JAVA】關鍵詞final的作用

此時編譯報錯:不可進行指派

嘗試改變final修飾的引用變量的屬性

package day0808;

public class TestFinal {
    public final int i=1;
    public final Student student=new Student("tom");
    public void changeFinal(){
      student.setName("jack");
        System.out.println(student.toString());

    }
    public static void main(String args[]){
        TestFinal testFinal=new TestFinal();
        testFinal.changeFinal();
    }

}      

輸出為

【JAVA】關鍵詞final的作用

【2】final關鍵字可以用來修飾方法

final關鍵字修飾父類的一個方法時,子類不可重寫這個方法

所有的private方法其實都被隐式地聲明為final

下面進行代碼示範

package day0808;

public class Animal {
    private String name;
    public final void eat(){
        System.out.print("小動物在吃東西");
    }
}      
【JAVA】關鍵詞final的作用

可以看得出來,編譯直接報錯:

【JAVA】關鍵詞final的作用

但是,如果我們把父類中的eat()方法的通路修飾符改成private,那我們可以發現,編譯器似乎不報錯了,但是子類依然沒有重寫eat()方法,而僅僅隻是聲明了一個新方法。

【3】final關鍵字可以用來修飾類

被final修飾的類不可以被繼承,final類裡面的成員方法都會被隐式地聲明為final

當我們寫了一個類,卻不希望别人對其進行任何改動時,我們就可以把該類聲明為final

String類就是被final修飾的