final是java中的一個關鍵字,意思是「恆定不變」。 java中final資料具體有兩個意義:1、對於基本資料類型,表示永不改變的編譯時常數;2、對於普通對象,表示該引用恆定不變,不能指向另外一個對象,但是該對象本身就是可以進行修改的。
Java中的final是關鍵字,它意義是恆定不變的。
final資料具體有兩個意義:
1.對於基本資料型,表示永不改變的編譯時常數。
2.對於普通對象,表示該引用恆定不變,不能指向另外一個對象,但是該對象本身是可以進行修改的。
因此有以下幾個注意點:
1.在類別中的static final 屬性,表示佔據一段不能改變的儲存空間,必須在宣告中初始化,在構造中不能初始化。
2.類別中的 final 屬性,因為不是static值,可以在每次的建構子中宣告。
注意,被final宣告的屬性,只能被初始化一次!非static每個實例最多初始化一次。 static的在類別的建立中只能初始化一次!
3.對於final修飾的物件(例如數組),宣告後可以修改數組,但不能重新指向新的數組。
public class Test_FinalAndStatic { static final int i=1; final int j; public Test_FinalAndStatic(int j){ //i、j只能被初始化一次 所以j在声明中不能初始化 this.j=j; //同时 i只能在声明中初始化,不能在构造中初始化 } final int[] is=new int[]{1,2,3}; //被final修饰的引用一旦被初始化指向一个对象,就不能再改变,但该对象自身可以改变 //is=new int[]{3,2,1}; error public void dois(){ //is对象自身可以改变 is[0]=4; System.out.print("is="); for(int w:is){ System.out.println(w+":"); } } public void showi(){ System.out.println("i="+i); // i只能占据一段不能改变的存储空间 // i++; error // i=5; error } public void showj(){ System.out.println("j="+j); // j++; error // j=2; error } @Override public String toString(){ dois();showi();showj(); return null; } public static void main(String[]args){ Test_FinalAndStatic t1=new Test_FinalAndStatic(100); t1.toString(); Test_FinalAndStatic t2=new Test_FinalAndStatic(200); t2.toString(); } }
結果:
is=4: 2: 3: i=1 j=100 is=4: 2: 3: i=1 j=200
final參數:
在訊息中的參數透過final修飾,則表示在訊息中不能改變參數引用所指向的物件。
final方法:
1.鎖定方法,防止任何繼承類別改變它的意義,保證不會被覆寫。
2.同意編譯器將方法的所有調用改為內嵌調用,提高效率。不過現在已不提倡。
3.所有private方法都隱含地指定為final 。由於無法取得private方法,自然也無法重寫。
final類別:
不可繼承,不可改變,不能有子類別。
以上是java中final什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!