内部类详解————局部内部类
內(nèi)部類三連擊:
《內(nèi)部類詳解————匿名內(nèi)部類》
《內(nèi)部類詳解————局部內(nèi)部類》
《內(nèi)部類詳解————靜態(tài)嵌套類》
定義
在方法或某個作用域內(nèi)的內(nèi)部類,稱為局部內(nèi)部類。匿名內(nèi)部類就是一種局部內(nèi)部類。
實現(xiàn)方式
public class OutterType { public void function() {/** 局部內(nèi)部類Inner*/class Inner {public void print() {System.out.println("局部內(nèi)部類...");}}} }規(guī)則
規(guī)則一:局部內(nèi)部類類似方法的局部變量,所以在類外或者類的其他方法中不能訪問這個內(nèi)部類,但這并不代表局部內(nèi)部類的實例和定義了它的方法中的局部變量具有相同的生命周期。
注意,如果是定義在一個作用域內(nèi)的局部內(nèi)部類,如下的形式:
我們將局部內(nèi)部類In定義在了一個if條件作用域中,因此,在if之外的部分,盡管沒有離開function()方法,就會報編譯錯誤,無法訪問到In這個內(nèi)部類,因此,還是需要廣義的理解局部內(nèi)部類的含義和訪問條件,不可片面的理解為僅僅是方法中定義的內(nèi)部類。
規(guī)則二:只能在方法內(nèi)部,類(局部內(nèi)部類)定義之后使用,不存在外部可見性問題,因此沒有訪問修飾符。
規(guī)則三:不能在局部內(nèi)部類中使用可變的局部變量。
規(guī)則四:可以訪問外圍類的成員變量。如果是static方法,則只能訪問static修飾的成員變量。
規(guī)則五:可以使用final 或 abstract修飾。
綜上,就是局部內(nèi)部類的知識,其實局部內(nèi)部類的名氣遠沒有匿名內(nèi)部類的名氣大,但是作為一個匿名內(nèi)部類的父概念,其定義了匿名內(nèi)部類和普通的局部內(nèi)部類的概念和特性,因此可以作為匿名內(nèi)部類的知識補充。
如有疑問,歡迎文末留言。
總結
以上是生活随笔為你收集整理的内部类详解————局部内部类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java并发编程实战————可重入内置锁
- 下一篇: java时间聚类_mongodb 按照时