Java中final修飾

final 關鍵字表示對象是最終形態的,對象是不可改變的意思。final 應用於類、方法和變量時意義是不同的,但本質是一樣的:final 表示不可改變。

final 用在變量的前面表示變量的值不可以改變,此時該變量可以被稱爲常量;final 用在方法的前面表示方法不可以被重寫;final 用在類的前面表示類不可以被繼承,即該類是最終形態,如常見的 java.lang.String 類。

final 修飾符使用在如下方面:

1. final 修飾類中的屬性

表示該屬性一旦被初始化便不可改變,這裏不可改變的意思對基本類型來說是其值不可變,而對對象屬性來說其引用不可再變。其初始化可以在兩個地方:一是其定義處,也就是說在 final 屬性定義時直接給其賦值;二是在構造函數中。這兩個地方只能選其一,要麼在定義時給值,要麼在構造函數中給值,不能同時既在定義時賦值,又在構造函數中賦予另外的值。

2. final 修飾類中的方法

說明這種方法提供的功能已經滿足當前要求,不需要進行擴展,並且也不允許任何從此類繼承的類來重寫這種方法,但是繼承仍然可以繼承這個方法,也就是說可以直接使用。在聲明類中,一個 final 方法只被實現一次。

3. final 修飾類

表示該類是無法被任何其他類繼承的,意味着此類在一個繼承樹中是一個葉子類,並且此類的設計已被認爲很完美而不需要進行修改或擴展。

對於 final 類中的成員,可以定義其爲 final,也可以不是 final。而對於方法,由於所屬類爲 final 的關係,自然也就成了 final 型。也可以明確地給 final 類中的方法加上一個 final,這顯然沒有意義。

總結:

1、final修飾的類不能被繼承。

2、Sting就是一個被final修飾的類,我們只能用,不用繼承。

3、final不僅可以修飾類,還可以修飾變量,被final修飾的變量就是一個常量,只能賦值一次。

4、注意final和finally的區別,final是修飾類或者變量,finally是在異常處理中使用,如:

try{ }catch(){}finally{}中,finally的作用一般用於必須處理的事情,如關閉連接。

發佈了11 篇原創文章 · 獲贊 13 · 訪問量 5394
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章