更新時(shí)間:2020-04-30 14:44:52 來源:動(dòng)力節(jié)點(diǎn) 瀏覽5724次
一、內(nèi)部類內(nèi)容解析
1.內(nèi)部類的區(qū)分
內(nèi)部類分別有成員內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類、靜態(tài)內(nèi)部類,接下來將分別介紹。
2.成員內(nèi)部類
就是位于外部類成員位置的類。與外部類的屬性、方法并列。
成員內(nèi)部類作為外部類的成員,可以訪問外部類的私有成員或?qū)傩浴#词箤⑼獠款惵暶鳛閜rivate,但是對(duì)于處于其內(nèi)部的內(nèi)部類還是可見的。)
用成員內(nèi)部類定義在外部類中不可訪問的屬性。這樣就在外部類中實(shí)現(xiàn)了比外部類的private還要小的訪問權(quán)限。
注意:內(nèi)部類是一個(gè)編譯時(shí)的概念,一旦編譯成功,就會(huì)成為完全不同的兩類。對(duì)于一個(gè)名為outer的外部類和其內(nèi)部定義的名為inner的內(nèi)部類。編譯完成后出現(xiàn)outer.class和outer$inner.class兩類。
①.代碼例子
②.作用
數(shù)據(jù)安全。如果我們的內(nèi)部類不想輕易被任何人訪問,可以選擇使用private修飾內(nèi)部類,這樣我們就無法通過創(chuàng)建對(duì)象的途徑來訪問,想要訪問只需要在外部類中定義一個(gè)public修飾的方法,間接調(diào)用。這樣做的好處就是,我們可以在這個(gè)public方法中增加一些判斷語句,起到數(shù)據(jù)安全的作用。
3.局部內(nèi)部類
定義在一個(gè)方法或者一個(gè)作用域里面的類。
局部內(nèi)部類中不可定義靜態(tài)變量,可以訪問外部類的局部變量(即方法內(nèi)的變量),但是變量必須是final的。
①.代碼例子
局部內(nèi)部類只能在所在的方法體作用域內(nèi)進(jìn)行實(shí)例化,而如果要在所在方法體返回該類,就要通過接口向上轉(zhuǎn)型的操作。(如同上處代碼)
②.作用
在某些情況下,某些業(yè)務(wù)邏輯需要臨時(shí)處理,這些業(yè)務(wù)邏輯只在這里使用又可以封裝成一個(gè)類的話,而又沒必要重新建個(gè)文件,所以可以這寫一個(gè)局部內(nèi)部類來處理。然后,在我的記憶中,java代理模式中有用到局部內(nèi)部類,在方法中直接實(shí)現(xiàn)接口,返回代理對(duì)象,簡單而又方便。
4.靜態(tài)內(nèi)部類
靜態(tài)字段的內(nèi)部類,和靜態(tài)方法并列。
①.代碼例子
②.作用
提供調(diào)試作用。我將main方法寫在靜態(tài)內(nèi)部類中,生成.class文件后,調(diào)試代碼在靜態(tài)內(nèi)部類當(dāng)中,當(dāng)我刪除靜態(tài)內(nèi)部類后,其他人仍然可以使用我的外部類。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):java內(nèi)部類的作用”的內(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í)