



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java final 修飾符知識(shí)點(diǎn)總結(jié)范例 final從字面上理解含義為“最后的,最終的”。在Java中也同樣表示出此種含義。 final可以用來(lái)修飾變量(包括類屬性、對(duì)象屬性、局部變量和形參)、方法(包括類方法和對(duì)象方法)和類。 1.final修飾類: final修飾類即表示此類已經(jīng)是“最后的、最終的”含義。因此,用final修飾的類不能被繼承,即不能擁有自己的子類。 如果視圖對(duì)一個(gè)已經(jīng)用final修飾的類進(jìn)行繼承,在編譯期間或發(fā)生錯(cuò)誤。 2.final修飾方法: final修飾的方法表示此方法已經(jīng)是“最后的、最終的”含義,亦即此方法不能被重寫(xiě)(可以重載多個(gè)final修飾的方法)。 此處需要注意的一點(diǎn)是:因?yàn)橹貙?xiě)的前提是子類可以從父類中繼承此方法,如果父類中final修飾的方法同時(shí)訪問(wèn)控制權(quán)限為private, 將會(huì)導(dǎo)致子類中不能直接繼承到此方法,因此,此時(shí)可以在子類中定義相同的方法名和參數(shù),此時(shí)不再產(chǎn)生重寫(xiě)與final的矛盾,而是 在子類中重新定義了新的方法。 publicclassBextendsApublicstaticvoidmain(Stringargs)publicvoidgetName()classA/*因?yàn)閜rivate修飾,子類中不能繼承到此方法,因此,子類中的getName方法是重新定義的、*屬于子類本身的方法,編譯正常*/privatefinalvoidgetName()/*因?yàn)閜blic修飾,子類可以繼承到此方法,導(dǎo)致重寫(xiě)了父類的final方法,編譯出錯(cuò)publicfinalvoidgetName()*/ 3.final修飾變量: final修飾的變量表示此變量是“最后的、最終的”含義。一旦定義了final變量并在首次為其顯示初始化后,final修飾的變量值不可被改變。 這里需要注意以下幾個(gè)問(wèn)題: 1.final修飾的變量,無(wú)論是類屬性、對(duì)象屬性、形參還是局部變量,這些變量都是需要進(jìn)行顯示初始化(即為其顯示指定初始值)。 對(duì)于final修飾的形參,由于是實(shí)參傳遞過(guò)來(lái)的,很好理解。 對(duì)于final修飾的局部變量,與未用final修飾的變量一樣,都是需要顯示初始化。即局部變量都是需要顯示初始化的。 對(duì)于一般的類屬性和對(duì)象屬性,由類和對(duì)象的初始化過(guò)程中可以看出,首先都進(jìn)行了默認(rèn)初始化。然后對(duì)有顯示賦值的變量才再進(jìn)行顯示初始化。 但對(duì)final修飾的類屬性和對(duì)象屬性而言,如果不顯示初始化,其默認(rèn)將是進(jìn)行默認(rèn)初始化后的值,這與final本身出發(fā)點(diǎn)矛盾,因此,Java語(yǔ)法規(guī)定: final修飾的類屬性和變量屬性必須要進(jìn)行顯示初始化賦值。 另外,無(wú)論對(duì)于基本數(shù)據(jù)類型還是引用數(shù)據(jù)類型,final修飾的變量都是首次顯示初始化后值都不能修改。對(duì)于基本數(shù)據(jù)類型,很好理解。對(duì)于引用 數(shù)據(jù)類型,引用變量指向的是實(shí)際的對(duì)象,但其存儲(chǔ)的是所指向?qū)ο蟮牡刂?,因此,其值不能修改并不意味著其所指向的?duì)象不能修改。 4.final修飾變量后導(dǎo)致的“宏替換”/宏變量問(wèn)題 Java中宏變量/宏替換指的是在java代碼中在編譯期某些變量能夠直接被其本身的值所替換,編譯到.class文件中。因此,編譯后的.class文件中已經(jīng)不存在此變了。 在String類型的變量中,有時(shí)候經(jīng)常遇到如下情況: publicclassTestpublicstaticvoidmain(Stringargs)Stringcountry=China;Stringname=qqyumidi;StringuserInfo=country+name;/編譯后此處依然是country和name變量Stringuser=China+qqyumidi;/編譯后此處直接變成Chinaqqyumidi 在上述代碼中的第9行,編譯后的變量結(jié)果直接為Chinaqqyumidi。而第8行代碼中,由于country和name都是普通的變量,編譯器無(wú)法在編譯時(shí)直接確定userInfo的值,因此 此處編譯后結(jié)果不直接是Chinaqqyumidi。 但是,如果希望第8行中的代碼在編譯期直接就能表示為Chinaqqyumidi,就需要用到final修飾符對(duì)country和name變量進(jìn)行修飾。 原因:final修飾符修飾的變量在由于其本身的特性,在編譯期就能直接確定其值,且此值不可變。在編譯過(guò)程中,可以直接將其變量直接轉(zhuǎn)換成其值本身去表示。 publicclassTestpublicstaticvoidmain(Stringargs)fin
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化妝老師授課活動(dòng)方案
- 公司文體類活動(dòng)策劃方案
- 公司組織親子活動(dòng)方案
- 公司研討旅行活動(dòng)方案
- 公司組織形象活動(dòng)方案
- 公司紫金山登山活動(dòng)方案
- 公司歌曲比賽策劃方案
- 公司烤全羊活動(dòng)策劃方案
- 公司社團(tuán)展示活動(dòng)方案
- 公司組織爬樓梯活動(dòng)方案
- 病案管理系統(tǒng)用戶使用手冊(cè)
- CNAS-RL01:2019實(shí)驗(yàn)室認(rèn)可規(guī)則
- 質(zhì)量管理機(jī)構(gòu)設(shè)置及職責(zé)
- 國(guó)家開(kāi)放大學(xué)《22019統(tǒng)計(jì)學(xué)原理(統(tǒng)設(shè)課)》期末考試題庫(kù)
- 國(guó)家開(kāi)放大學(xué)《應(yīng)用寫(xiě)作(漢語(yǔ))》形考任務(wù)1-6答案
- 臺(tái)球助教管理培訓(xùn)
- 順豐運(yùn)作主管
- 萬(wàn)達(dá)入職在線測(cè)評(píng)題
- 多校聯(lián)考高一下學(xué)期語(yǔ)文期末考試試卷
- 品管圈PDCA提高手衛(wèi)生依從性
- 2025高考物理步步高同步練習(xí)選修1練透答案精析
評(píng)論
0/150
提交評(píng)論