Java 中,類可以包含在另一個類中,這種被包含的類稱為內(nèi)部類,而包含在其他類之外的類就是外部類。
內(nèi)部類與外部類之間可以訪問彼此的成員,同時內(nèi)部類也能夠創(chuàng)建外部類的對象。
public class OuterClass { private int x = 10; class InnerClass { public int myInnerMethod() { return x; } } }
上面的代碼中,InnerClass 是一個內(nèi)部類,可以訪問 OuterClass 中的成員變量 x。
內(nèi)部類有以下幾種類型:
- 成員內(nèi)部類:定義在外部類中,并且不是 static 的內(nèi)部類,可以訪問外部類的成員變量和方法。
- 靜態(tài)內(nèi)部類:定義在外部類中,并且是 static 的內(nèi)部類,可以訪問外部類的靜態(tài)變量和方法。
- 局部內(nèi)部類:定義在方法中的內(nèi)部類,只有在方法執(zhí)行時才會創(chuàng)建,可以訪問方法中的變量和參數(shù)。
- 匿名內(nèi)部類:沒有名稱的內(nèi)部類,通常用于創(chuàng)建單個對象,可以直接實現(xiàn)接口或繼承類。
在使用內(nèi)部類時,需要注意以下幾點:
- 內(nèi)部類不能定義靜態(tài)變量和靜態(tài)方法。
- 內(nèi)部類可以訪問外部類的私有成員變量和方法。
- 內(nèi)部類實例化需要通過外部類的實例進行訪問,例如:OuterClass.InnerClass innerObject = outerObject.new InnerClass();
總之,內(nèi)部類和外部類可以互相訪問,可以相互影響,使用起來非常靈活方便。