一、內部類內容解析
1.內部類的區(qū)分
內部類分別有成員內部類、局部內部類、匿名內部類、靜態(tài)內部類,接下來將分別介紹。
2.成員內部類
就是位于外部類成員位置的類。與外部類的屬性、方法并列。
成員內部類作為外部類的成員,可以訪問外部類的私有成員或屬性。(即使將外部類聲明為private,但是對于處于其內部的內部類還是可見的。)
用成員內部類定義在外部類中不可訪問的屬性。這樣就在外部類中實現(xiàn)了比外部類的private還要小的訪問權限。
注意:內部類是一個編譯時的概念,一旦編譯成功,就會成為完全不同的兩類。對于一個名為outer的外部類和其內部定義的名為inner的內部類。編譯完成后出現(xiàn)outer.class和outer$inner.class兩類。
①.代碼例子
②.作用
數(shù)據(jù)安全。如果我們的內部類不想輕易被任何人訪問,可以選擇使用private修飾內部類,這樣我們就無法通過創(chuàng)建對象的途徑來訪問,想要訪問只需要在外部類中定義一個public修飾的方法,間接調用。這樣做的好處就是,我們可以在這個public方法中增加一些判斷語句,起到數(shù)據(jù)安全的作用。
3.局部內部類
定義在一個方法或者一個作用域里面的類。
局部內部類中不可定義靜態(tài)變量,可以訪問外部類的局部變量(即方法內的變量),但是變量必須是final的。
①.代碼例子
局部內部類只能在所在的方法體作用域內進行實例化,而如果要在所在方法體返回該類,就要通過接口向上轉型的操作。(如同上處代碼)
②.作用
在某些情況下,某些業(yè)務邏輯需要臨時處理,這些業(yè)務邏輯只在這里使用又可以封裝成一個類的話,而又沒必要重新建個文件,所以可以這寫一個局部內部類來處理。然后,在我的記憶中,java代理模式中有用到局部內部類,在方法中直接實現(xiàn)接口,返回代理對象,簡單而又方便。
4.靜態(tài)內部類
靜態(tài)字段的內部類,和靜態(tài)方法并列。
①.代碼例子
②.作用
提供調試作用。我將main方法寫在靜態(tài)內部類中,生成.class文件后,調試代碼在靜態(tài)內部類當中,當我刪除靜態(tài)內部類后,其他人仍然可以使用我的外部類。
以上就是長沙牛耳教育java培訓機構的小編針對“Java基礎學習:java內部類的作用”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。
Java基礎學習