您好,登錄后才能下訂單哦!
這篇文章主要介紹java中final數據的含義,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
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數據的含義的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。