標籤:基礎 class inf rgs 靜態變數 src 成員修飾符 技術分享 nbsp
一、基礎概念
1.內部類是定義在類中的類。A類需要直接存取B類中的成員時,可以將A類定義到B類中,作為B類的內部類存在。
2.內部類可以相當於外部類中的一個成員,可以被成員修飾符所修飾。(如:public private static)
3.靜態內部類可以相當於一個外部類進行使用。
4.非靜態內部類只允許定義靜態常量,不能定義其他靜態成員。
5.訪問規則:
內部類可以直接存取外部類中的成員,因為內部類持有了外部類的引用。外部類名.this
外部類要訪問內部類需要建立內部類的對象。
二、執行個體代碼
1 //外部類Outer 2 class Outer 3 { 4 private static int num = 4; 5 6 //內部類Inner_1 7 class Inner_1 8 { 9 10 void show1()11 {12 System.out.println("內部類Inner_1 ,show1 "+num);//內部類Inner_1可以直接存取外部類Outer中的成員num13 }14 }15 16 //外部類中的方法Method訪問內部類Inner_1中的方法show117 public void Method()18 {19 Inner_1 in = new Inner_1();20 in.show1();21 }22 23 //靜態內部類Inner_224 static class Inner_225 {26 void show2()27 {28 System.out.println("內部靜態類Inner_2 ,show2 "+num);29 }30 static void show3()31 {32 System.out.println("內部靜態類Inner_2 ,show3 "+num);33 }34 }35 36 class Inner_437 {38 static final int count = 5; //內部類中定義靜態常量39 void show4()40 {41 System.out.println("內部類Inner_4 ,show4 "+count);42 }43 }44 }45 46 class InnerClassDemo 47 {48 public static void main(String[] args) 49 {50 //建立外部類對象,訪問內部類。51 Outer out = new Outer();52 out.Method();53 54 //建立非靜態內部類對象,可以通過建立外部類對象,被外部其他程式訪問。55 Outer.Inner_1 i1 = new Outer().new Inner_1();56 i1.show1();57 58 //建立靜態內部類對象,並訪問非靜態成員。59 Outer.Inner_2 i2 = new Outer.Inner_2();60 i2.show2();61 62 //建立靜態內部類對象,並訪問靜態成員。63 Outer.Inner_2.show3();64 Outer.Inner_2 i4 = new Outer.Inner_2();65 i4.show3();66 67 //建立非靜態內部類對象,並訪問靜態變數。68 Outer.Inner_4 i5 = new Outer().new Inner_4();69 i5.show4();70 }71 }
三、代碼運行
Java物件導向之內部類(訪問格式)