更新時間:2020-07-10 16:42:01 來源:動力節點 瀏覽2368次
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技術內容
Java中final關鍵字的作用:http://www.ilovecolors.com.cn/tutorial_java_advance/607.html
以上就是動力節點java培訓機構的小編針對“編程基礎之Java中final是什么意思”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習