国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

匿名內(nèi)部類為什么用final 內(nèi)部類和匿名內(nèi)部類是什么?有什么作用?

內(nèi)部類和匿名內(nèi)部類是什么?有什么作用? 1. 內(nèi)部類:內(nèi)部類是在另一個(gè)類中定義的類。使用它有三個(gè)主要原因:內(nèi)部類方法可以訪問類定義范圍內(nèi)的數(shù)據(jù),包括私有數(shù)據(jù)。內(nèi)部類可以對同一包中的其他類隱藏。當(dāng)您想定

內(nèi)部類和匿名內(nèi)部類是什么?有什么作用?

1. 內(nèi)部類:內(nèi)部類是在另一個(gè)類中定義的類。使用它有三個(gè)主要原因:內(nèi)部類方法可以訪問類定義范圍內(nèi)的數(shù)據(jù),包括私有數(shù)據(jù)。內(nèi)部類可以對同一包中的其他類隱藏。當(dāng)您想定義回調(diào)函數(shù)而不想編寫大量代碼時(shí),使用匿名內(nèi)部類是很方便的。

2. 局部內(nèi)部類:在討論匿名內(nèi)部類之前,讓我們先看一下在方法中定義的局部內(nèi)部類。不能使用公共或私有訪問說明符聲明本地內(nèi)部類。它的作用域僅限于聲明局部內(nèi)部類的塊。局部內(nèi)部類可以對外部世界完全隱藏。局部內(nèi)部類不僅可以訪問它們的外圍類,還可以訪問局部變量。但是,這些局部變量必須聲明為final,如上面代碼中start()方法的參數(shù)beep所示。

3. 匿名內(nèi)部類修改上面本地內(nèi)部類的代碼,以定義一個(gè)沒有類名的匿名內(nèi)部類。除了內(nèi)部類的優(yōu)點(diǎn)外,匿名內(nèi)部類還可以減少代碼量。

匿名內(nèi)部類訪問局部變量,為什么final?

這是變量范圍的問題,因?yàn)槟涿麅?nèi)部類出現(xiàn)在方法中。如果要訪問方法的參數(shù)或方法中定義的變量,則必須將這些參數(shù)和變量修改為final。

盡管匿名內(nèi)部類在方法內(nèi)部,但內(nèi)部類被編譯為外部。內(nèi)部這意味著內(nèi)部類的位置和外部類中的方法處于同一級別。外部類中方法中的變量或參數(shù)只是方法的局部變量,這些變量或參數(shù)的作用域僅在方法內(nèi)部有效。由于內(nèi)部類和方法在編譯時(shí)處于同一級別,因此只有在方法中的變量或參數(shù)是final時(shí)才能引用內(nèi)部類。

匿名內(nèi)部類訪問局部變量為什么final?

確保不會在匿名內(nèi)部類內(nèi)部或外部修改局部變量。因?yàn)槟涿麅?nèi)部類實(shí)際上復(fù)制了一個(gè)局部變量并在匿名內(nèi)部類中使用它。如果未設(shè)置為final,則局部變量將被外部修改,這將導(dǎo)致與匿名內(nèi)部類中的副本不一致,這在邏輯上是不合理的。所以Java虛擬機(jī)就是這樣設(shè)計(jì)的,強(qiáng)制局部變量是final,這在語義上是一致的。