內部類和靜態內部類

2021-05-02 15:21:38 字數 767 閱讀 3367

內部類就是在乙個類的內部定義的類,內部類中不能定義靜態成員,內部類可以直接訪問外部類中的成員變數,內部類可以定義在外部類的方法外面,也可以定義在外部類的方法體中,如下所示:

public class outer

}inner2 inner2 = new inner2();}

public class inner1   //在方法體外面定義的內部類

}public static class inner3 //方法體外面定義的靜態內部類}

} inner1是在方法體外定義的內部類,inner2是在方法體內定義的內部類,inner3是在方法體外定義的靜態內部內。對於非靜態內部類,只有外部類的靜態成員可以引用,而普通的內部類則都可以引用。

內部類的引用:在外部引用靜態內部類時的名稱「外部類名

.內部類名」,例如要引用內部類inner3則可以這樣引用:

outer.inner inner = new outer.inner3();

其它內部類的引用則要先建立外部類的例項物件,如要引用內部類inner1則可以這樣引用:

outer outer = new outer();

outer.inner1 inner1 = outer.new innner1();

最後,在方法體內部還可以採用如下語法來建立一種匿名內部類,即定義某一介面或類的子類的同時,還建立了該子類的例項物件,無需為該子類定義名稱:

public class outer;}

).start();}}

匿名內部類必須繼承或實現其他介面。

內部類和靜態內部類

一 概念 定義在乙個類內部的類叫內部類,包含內部類的類稱為外部類。內部類可以宣告public protected private等訪問限制,可以宣告 為abstract的供其他內部類或外部類繼承與擴充套件,或者宣告為static final的,也可以實現特定的介面。外部類按常規的類訪問方式使用內部 ...

java內部類和靜態內部類呼叫

內部類 public class test public static void main string args 呼叫方式 public class test2 靜態內部類 呼叫靜態內部類的非靜態方法 public class test public class test2 呼叫靜態內部類的靜態方...

常規內部類 區域性內部類 匿名內部類和靜態巢狀類小結

1.常規內部類 內部類就像乙個例項成員一樣存在於外部類中。內部類可以訪問外部類的所有成員就想訪問自己的成員一樣沒有限制。內部類中的this指的是內部類的例項物件本身,如果要用外部類的例項物件就可以用類名.this的方式獲得。內部類物件中不能宣告靜態成員,原因很簡單,內部類的例項物件是外部類例項物件的...