更新時(shí)間:2020-07-10 16:42:01 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2347次
Java中的final是一個(gè)關(guān)鍵字,它含義是恒定不變的。
final數(shù)據(jù)具體有兩個(gè)含義:
1.對(duì)于基本數(shù)據(jù)類型,表示永不改變的編譯時(shí)常量。
2.對(duì)于普通對(duì)象,表示該引用恒定不變,不能指向另外一個(gè)對(duì)象,但是該對(duì)象本身是可以進(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.對(duì)于final修飾的對(duì)象(比如數(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è)對(duì)象,就不能再改變,但該對(duì)象自身可以改變
????//is=new?int[]{3,2,1};?error
????public?void?dois(){
????????//is對(duì)象自身可以改變
????????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ù)引用所指向的對(duì)象。
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)的小編針對(duì)“編程基礎(chǔ)之Java中final是什么意思”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743