java關鍵字之 final

2021-09-14 01:43:42 字數 1289 閱讀 5174

在我們實際程式設計中,出於效率、安全等原因,有時我們想要乙個值無法被更改,這時就需要用到final關鍵字了。final表示「這部分是不允許修改的!」。final可修飾資料、方法和類。

final修飾的資料在使用時是無法被更改的,也就是我們常說的常量。常量對於程式而言是有很大作用的,它可以減少程式執行的消耗。常量可分為編譯期常量和執行期常量。

編譯期常量在類載入時便完成了初始化,因此在類載入之後是不能被更改的。編譯器常量可以在編譯器執行相應的計算的式子,對於編譯器常量而言,只能使用基本的資料型別二期而且必須在最初定義時就進行初始化。

執行期常量可以根據物件的不同而表現不同,它既可以是基本的資料型別也可以是引用型別。對於基本資料型別而言,其不可變的是內容,而對於引用資料型別不可變的是其的引用,引用所指向的內容是可變的。

final修飾的方法是不能被繼承和修改的,因此可以利用final關鍵字來防止子類對於方法的修改。也就是父類的final方法並被子類覆蓋,子類不能存在乙個與父類一樣的方法,舉例如下:

//父類

public class test2

}//子類

public class test3 extends test2

public static void main(string args)

}

這樣子類將報錯,刪除final關鍵字則可以正常執行(此時相當於子類重寫了父類的方法,將輸出「this is test3」)。除此之外,新增了final關鍵字的方法在呼叫時將會減少一定的呼叫的開銷。

final修飾類則表明這個類是乙個最終類,最終類不允許偶其他類來繼承它,而且不允許這個類存在任何變化。final類中的方法是預設final型別的,成員變數可以是final也可以是非final的。

在實際程式設計中,我們還可以用final來修飾引數,這樣這個引數的值是不可改變的,如果在使用中嘗試修改這個值則會報錯。

1)final關鍵字可以修飾類、方法、屬性和區域性變數。

2)final修飾的屬性初始化可以在編譯器也可以在執行期,初始化之後不可改變。

3)final修飾的屬性如果是基本資料型別,則後續不能改變;如果修飾的是引用型別,則該引用不可更改,但是引用所指向的值可以改變,因為該final只將這個引用設定為常量。

4)final修飾的方法不可被更改,但是如果該方法不是private型別的話,可以被子類所呼叫。final修飾的類不可被繼承。

1)使用範圍為二者的交集:成員變數、方法和類

2)修飾成員變數時一旦複製則不可被更改,可以通過類名直接呼叫

3)修飾方法時不可被重寫,可通過類名直接呼叫。

4)修飾類時不可被繼承。

java之final關鍵字

final 最終,作為乙個修飾符 1.可以修飾類 變數 函式 2.被final修飾的類不可以被繼承。為了避免被繼承,被子類複寫功能。3.被final修飾的方法不可以被複寫 4.被final修飾的變數是乙個常量只能賦值一次,即可以修飾成員變數,又可以修飾區域性變數 當在描述事物時,一些資料的出現值是固...

Java之final關鍵字

final關鍵字需要掌握以下三點 1 final修飾的變數的值不能被改變 2 final的方法不能被重寫 3 final的類不能被繼承。我們分條解釋一下 1 final修飾的變數的值不能被改變 我們定義乙個類 class t此時,下面這段 是錯誤的 public class test 我們定義下面的...

Java 之final關鍵字

final 表示最終,最後的意思,它可以用來修飾乙個變數,方法,和類,表示所修飾的物件不可以改變。1.final 修飾變數 表示這個兩個只能被賦值一次。注意如下案例是可以的 package com.example.test public class myclass 輸出 str one proces...