可能使用到final的三種情況:資料、方法、類
一、資料
final使基本資料型別的資料為常量,不可改變;使引用恆定不變,當在引數中使用final時,引用在方法體內不可改變。
我們不能因為某資料時final的就認為在編譯時可以知道它的值,在執行時使用隨機生成也可初始化。
final static int value = 9 和 final static int value = 9; 並沒有什麼區別
但是當final static int value = new random().nextint(20); final int value = new random().nextint(20);時,是不一樣的,每一次建立物件時,第二種方式建立的常量只針對該物件時恆定不變的常量了,但是對於不同物件來說,這個數字是不同的;而用static修飾的用處在於該初始化只在類載入進行一次初始化,也就是value會恆定不變。既是static又是final的域用大寫表示,並使用下劃線分割各個單詞。
較常用的方式是public final static int value = 3;
二、方法
使用final方法原因在於防止任何繼承類修改它的含義。類中所有private的方法都隱式地指定為final的。
三、類
當將整個類定義位final時,表明禁止繼承該類。類中的所有方法隱式指定為final。(一般不推薦)
JavaSE之final關鍵字
目錄 一 概念 二 修飾範圍 將方法或類宣告為final,主要目的是 確保他們不會在子類中改變語義。有些類在描述完之後,不想被繼承,或者有些類中的部分方法功能是固定的,不想讓子類重寫。就可以使用final關鍵字解決,它可以用來修飾類,類的成員,以及區域性變數。例如string類被final修飾,這意...
(JavaSE)十二 final關鍵字
為什麼要使用final 修飾符?繼承關係最大弊端是破壞封裝 子類能訪問父類的實現細節,而且可以通過方法覆蓋的形式修改實現細節.final最終的含義是 最終的,不可改變的 它可以修飾非抽象類 非抽象的方法和變數。注意 構造方法不能用final修飾,因為構造方法不能被繼承,肯定就是最終的。表示最終類,不...
JavaSe筆記Collection之迭代器
作用 提供了遍歷容器的統一介面 iterator介面 一共有三個方法 迭代器原理 通過容器物件的iterator 方法,獲得容器物件的迭代器物件 iterator it arraylist.iterator 迭代器物件中有乙個游標cursor,游標初始時預設指向要遍歷的第乙個元素前面 it.hasn...