更新時間:2020-04-30 14:44:52 來源:動力節(jié)點(diǎn) 瀏覽5637次
一、內(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,但是對于處于其內(nèi)部的內(nèi)部類還是可見的。)
用成員內(nèi)部類定義在外部類中不可訪問的屬性。這樣就在外部類中實現(xiàn)了比外部類的private還要小的訪問權(quán)限。
注意:內(nèi)部類是一個編譯時的概念,一旦編譯成功,就會成為完全不同的兩類。對于一個名為outer的外部類和其內(nèi)部定義的名為inner的內(nèi)部類。編譯完成后出現(xiàn)outer.class和outer$inner.class兩類。
①.代碼例子
②.作用
數(shù)據(jù)安全。如果我們的內(nèi)部類不想輕易被任何人訪問,可以選擇使用private修飾內(nèi)部類,這樣我們就無法通過創(chuàng)建對象的途徑來訪問,想要訪問只需要在外部類中定義一個public修飾的方法,間接調(diào)用。這樣做的好處就是,我們可以在這個public方法中增加一些判斷語句,起到數(shù)據(jù)安全的作用。
3.局部內(nèi)部類
定義在一個方法或者一個作用域里面的類。
局部內(nèi)部類中不可定義靜態(tài)變量,可以訪問外部類的局部變量(即方法內(nèi)的變量),但是變量必須是final的。
①.代碼例子
局部內(nèi)部類只能在所在的方法體作用域內(nèi)進(jìn)行實例化,而如果要在所在方法體返回該類,就要通過接口向上轉(zhuǎn)型的操作。(如同上處代碼)
②.作用
在某些情況下,某些業(yè)務(wù)邏輯需要臨時處理,這些業(yè)務(wù)邏輯只在這里使用又可以封裝成一個類的話,而又沒必要重新建個文件,所以可以這寫一個局部內(nèi)部類來處理。然后,在我的記憶中,java代理模式中有用到局部內(nèi)部類,在方法中直接實現(xiàn)接口,返回代理對象,簡單而又方便。
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)部類后,其他人仍然可以使用我的外部類。
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“Java基礎(chǔ)學(xué)習(xí):java內(nèi)部類的作用”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743