什么是內(nèi)部類
將一個類定義在另一個類的里面,對里面那個類就稱為內(nèi)部類(內(nèi)置類,嵌套類)
訪問特點
內(nèi)部類可以直接訪問外部類中的成員,包括私有成員.
而外部類要訪問內(nèi)部類中的成員必須要建立內(nèi)部類的對象.
定義內(nèi)部類
public class Outer {
class Inner{
}
}
Inner就是Outer的內(nèi)部類
上圖可以看出,編譯后使用
$
符號進行標識.
注意:內(nèi)部類的作用域被限制在包含它的類之中.
內(nèi)部類與外部類互相訪問
public class Outer {
int num = 10;
class Inner{
public void show(){
System.out.println("Outer Class Num:" + num);
}
}
public void method(){
//外部類訪問內(nèi)部類必須創(chuàng)建內(nèi)部類對象
Inner inner = new Inner();
inner.show();
}
}
當我們在主函數(shù)中調(diào)用的時候只需要創(chuàng)建Outer類的對象,并訪問method方法.
Outer outer = new Outer();
outer.method();
除了上面這種方式,我們也可以直接實例化Outer類中的Inner內(nèi)部類.
Outer.Inner inner = new Outer().new Inner();
inner.show();
靜態(tài)內(nèi)部類
public class Outer {
static int num = 10;
static class Inner{
public static void show(){
System.out.println("Outer Class Num:" + num);
}
}
public void method(){
Inner inner = new Inner();
inner.show();
}
}
注意:內(nèi)部類為靜態(tài)的,內(nèi)部類的所有成員也必須為靜態(tài)的.