天天看點

Java-final最終修飾符最終修飾符

最終修飾符

final修飾的 方法 可以和靜态方法、普通方法重載

final可以修飾:屬性,方法,類,局部變量(方法中的變量)

final修飾的 屬性 的初始化可以在編譯期,也可以在運作期,初始化後不能被改變

final修飾的 屬性 跟具體對象有關,在運作期初始化的final屬性,不同對象可以有不同的值

final修飾的 屬性 ,表明該屬性是一個常數建立後不能被修改

final修飾的 方法參數 ,表示在變量的生存期中它的值不能被改變(方法參數中的final引用,意味着在該方法内部,我們不能改變參數句柄指向的實際東西,也就是說在方法内部不能給形參句柄再另外指派)

final修飾的 方法 ,表示該方法在子類中不能被重寫

final修飾的 類 ,表示該類不能被繼承。

被fianl修飾的變量不會自動改變類型,當2個final修飾相操作時,結果會根據左邊變量的類型而轉化

對于基本類型資料,final 會将值變為一個常數(建立後不能被修改);

對于對象引用(句柄),final 會将句柄變為一個常數(聲明時,必須将句柄初始化到一個具體的對象,而且不能再将句柄指向另一個對象。但是,對象的本身是可以修改的。這一限制也适用于數組,數組也屬于對象,數組本身也是可以修改的。)。

final隻對引用的"值"(即記憶體位址)有效,它迫使引用隻能指向初始指向的那個對象,改變它的指向會導緻編譯期錯誤。至于它所指向的對象的變化,final是不負責的。

繼續閱讀