在 Java 中,內部類是定義在另一個類內部的類,與之相對的是外部類。內部類可以分為四種類型:
1.成員內部類(Member Inner Class):定義在類內部,方法外部的類。
2.局部內部類(Local Inner Class):定義在方法內部或塊內部的類。
3.匿名內部類(Anonymous Inner Class):沒有類名的局部內部類。
4.靜態(tài)內部類(Static Inner Class):被聲明為 static 的內部類。
內部類和外部類的區(qū)別和用法如下:
1.內部類可以直接訪問外部類的成員變量和方法,即使是 private 的。而外部類不能訪問內部類的成員變量和方法。
2.內部類可以訪問外部類的私有成員變量和方法,這樣就增強了封裝性。
3.內部類可以實現(xiàn)多重繼承,一個內部類可以實現(xiàn)多個接口,而一個類只能繼承一個父類。
4.內部類可以被用來實現(xiàn)一些輔助類,這些類僅在外部類中使用,從而實現(xiàn)了隱藏實現(xiàn)的細節(jié)的目的。
5.內部類可以使代碼更加優(yōu)雅,更加緊湊,更加易讀。
總之,內部類可以為實現(xiàn)某些特殊的需求提供一種簡單、方便的解決方案。