使用final 關鍵字修飾乙個變數的

2021-08-31 17:30:49 字數 499 閱讀 4928

使用final 關鍵字修飾乙個變數時,是引用不能變,還

是引用的物件不能變?

使用final 關鍵字修飾乙個變數時,是指引用變數不能變,引用變數所指向的物件中的內容還是可以改

變的。例如,對於如下語句:

final stringbuffer a=new stringbuffer("immutable");
執行如下語句將報告編譯期錯誤:

a=new stringbuffer("");
但是,執行如下語句則可以通過編譯:

有人在定義方法的引數時,可能想採用如下形式來阻止方法內部修改傳進來的引數物件:

public void method(final stringbuffer param)

實際上,這是辦不到的,在該方法內部仍然可以增加如下**來修改引數物件:

final關鍵字修飾的變數

final意義 最終的,不可改變的。1 修飾變數,為常量,值不可變 2 修飾物件,值可變,引用不變 3 修飾方法,方法不可重寫 4 修飾類,無子類,不可以被繼承,更不可能被重寫。1.final修飾的基本型別變數必須賦值,但是只能賦值一次 可以在宣告時顯示初始化賦值,或者在構造方法中初始化賦值,或者在...

final關鍵字的使用

1 final修飾類 格式 public final class 類名稱 意義 此類不能有子類,即次類的成員方法都無法覆蓋重寫 2 final修飾成員方法 格式 修飾符 final 返回值型別 方法名稱 引數列表 意義 此方法若在父類中,子類中無法被重寫。注意 對於類和方法不能由abstract和f...

final關鍵字的使用

1 final可以用來修飾的結構 類 包 括內部類 方法 變 量 color 類 包括內部 類 方 法 變數 2 final用來修飾乙個類 俗稱太監類 此類不 能被其他 類繼 承 color 此類不能被其 他類繼承 比如 string類 system類 stringbuffer類 3 final用來...