Java內(nèi)部類可以分為四種類型:成員內(nèi)部類、局部?jī)?nèi)部類、匿名內(nèi)部類和靜態(tài)內(nèi)部類。
- 成員內(nèi)部類:這是最常見的內(nèi)部類,它位于外部類的成員位置,并且可以被外部類的實(shí)例訪問。成員內(nèi)部類可以進(jìn)一步分為四種類型:普通成員內(nèi)部類、靜態(tài)成員內(nèi)部類、抽象成員內(nèi)部類和接口成員內(nèi)部類。其中,靜態(tài)成員內(nèi)部類不依賴于外部類的實(shí)例,可以直接通過外部類名來訪問。
- 局部?jī)?nèi)部類:局部?jī)?nèi)部類位于方法或代碼塊的內(nèi)部,只能在該方法或代碼塊中被訪問。它不能被外部類的實(shí)例直接訪問,只能通過外部類的方法或代碼塊來訪問。
- 匿名內(nèi)部類:匿名內(nèi)部類是一種沒有名字的內(nèi)部類,通常用于創(chuàng)建一次性使用的對(duì)象,例如事件監(jiān)聽器。它不能被重復(fù)使用,并且只能直接訪問外部類的final變量或者effectively final的變量。
- 靜態(tài)內(nèi)部類:靜態(tài)內(nèi)部類是使用static關(guān)鍵字聲明的內(nèi)部類,它不依賴于外部類的實(shí)例,可以直接通過外部類名來訪問。靜態(tài)內(nèi)部類可以包含靜態(tài)和非靜態(tài)成員,并且可以被其他類直接訪問。
以上就是Java內(nèi)部類的四種類型,每種類型都有其特定的用途和訪問方式。