更新時(shí)間:2020-07-10 16:42:01 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2458次
Java中的final是一個(gè)關(guān)鍵字,它含義是恒定不變的。
final數(shù)據(jù)具體有兩個(gè)含義:
1.對于基本數(shù)據(jù)類型,表示永不改變的編譯時(shí)常量。
2.對于普通對象,表示該引用恒定不變,不能指向另外一個(gè)對象,但是該對象本身是可以進(jìn)行修改的。
因此有以下幾個(gè)注意點(diǎn):
1.在類中的static final屬性,表示占據(jù)一段不能改變的存儲(chǔ)空間,必須在聲明中初始化,在構(gòu)造中不能初始化。
2.類中的final屬性,因?yàn)椴皇莝tatic值,可以在每次的構(gòu)造函數(shù)中聲明。
注意,被final聲明的屬性,只能被初始化一次!非static每個(gè)實(shí)例中最多初始化一次。static的在類的創(chuàng)建中只能初始化一次!
3.對于final修飾的對象(比如數(shù)組),聲明后可以修改數(shù)組,但不能重新指向新的數(shù)組。
public?class?Test_FinalAndStatic?{
????static?final?int?i=1;
????final?int?j;
????public?Test_FinalAndStatic(int?j){
????????//i、j只能被初始化一次?所以j在聲明中不能初始化
????????this.j=j;?
????????//同時(shí)?i只能在聲明中初始化,不能在構(gòu)造中初始化
????}
????final?int[]?is=new?int[]{1,2,3};
????//被final修飾的引用一旦被初始化指向一個(gè)對象,就不能再改變,但該對象自身可以改變
????//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只能占據(jù)一段不能改變的存儲(chǔ)空間?
????//??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();
????}
}
結(jié)果:
is=4:
2:
3:
i=1
j=100
is=4:
2:
3:
i=1
j=200
final參數(shù):
在消息中的參數(shù)通過final修飾,則表示在消息中不能改變參數(shù)引用所指向的對象。
final方法:
1.鎖定方法,防止任何繼承類改變它的含義,保證不被覆蓋。
2.同意編譯器將該方法的所有調(diào)用改為內(nèi)嵌調(diào)用,提高效率。不過現(xiàn)在已不提倡。
3.所有private方法都隱式指定為final。由于無法取得private方法,自然也就無法重寫。
final類:
不可繼承,不可改變,不能有子類。
Java技術(shù)內(nèi)容
Java中final關(guān)鍵字的作用:http://www.dabaquan.cn/tutorial_java_advance/607.html
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“編程基礎(chǔ)之Java中final是什么意思”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743