一、概念
定義在乙個類內部的類叫內部類,包含內部類的類稱為外部類。內部類可以宣告public、protected、private等訪問限制,可以宣告 為abstract的供其他內部類或外部類繼承與擴充套件,或者宣告為static、final的,也可以實現特定的介面。外部類按常規的類訪問方式使用內部 類,唯一的差別是外部類可以訪問內部類的所有方法與屬性,包括私有方法與屬性。
二、例項建立
p:public class a{
private int d;
public class b{
private int e;
a.this.d;
public static class c{
private int f;
this.d;
例項化a a = new a();
a.b b = a.new b();
a.c c = new a.c();
訪問變數
a.this.d;
this.d;
三、編譯
每個類會產生乙個.class檔案,檔名即為類名。同樣,內部類也會產生這麼乙個.class檔案,但是它的名稱卻不是內部類的類名,而是有著嚴格的限制:外圍類的名字,加上$,再加上內部類名字。
內部類和靜態內部類
內部類就是在乙個類的內部定義的類,內部類中不能定義靜態成員,內部類可以直接訪問外部類中的成員變數,內部類可以定義在外部類的方法外面,也可以定義在外部類的方法體中,如下所示 public class outer inner2 inner2 new inner2 public class inner1 ...
java內部類和靜態內部類呼叫
內部類 public class test public static void main string args 呼叫方式 public class test2 靜態內部類 呼叫靜態內部類的非靜態方法 public class test public class test2 呼叫靜態內部類的靜態方...
常規內部類 區域性內部類 匿名內部類和靜態巢狀類小結
1.常規內部類 內部類就像乙個例項成員一樣存在於外部類中。內部類可以訪問外部類的所有成員就想訪問自己的成員一樣沒有限制。內部類中的this指的是內部類的例項物件本身,如果要用外部類的例項物件就可以用類名.this的方式獲得。內部類物件中不能宣告靜態成員,原因很簡單,內部類的例項物件是外部類例項物件的...