內部類就是在外部類內部定義的乙個類,該類可以放到外部類的裡面、外部類的某個方法中、外部類某個表示式內.有了內部類以後,就可以訪問外部類中的私有成員變數.
內部類共分為4中型別:
(1)、靜態內部類
/**
* 靜態內部類
* @author administrator
* */
public class staticinnerclasstest
}class outclass
}}
a.對於靜態內部類的初始化,通常使用外部類.內部類即可
b.靜態內部類中只能訪問外部的靜態成員變數
c.編譯後的class檔案中,會出現outclass.class和outclass$innerstatciclass.class位元組碼檔案
(2)成員內部類
public class memberinnerclasstest }
class outclass1 }
public void test()
}
a.訪問外部類的成員變數:外部類名.this.外部類成員變數名
b.例項化方式:(new 外部類名()).new 內部類名()
c.在外部類的某個方法中掉用內部類:this.new 內部類名();
(3) 區域性內部類
/**
* 區域性內部類(通常定義在外部類的方法作用域中)
* @author administrator
* */
public class localinnerclasstest
}class outclass2
} new inner1().innertest();
}}
a.在外部類的某個方法中作用域或更小作用域中的類
b.該內部類中只能起之外的被final修飾的變數
(4) 匿名內部類
public inte***ce myinterfce
/**
* 匿名內部類
* @author administrator
* */
public class anonyinnerclasstest
});system.out.println(str); }}
class outclass3
}
a.匿名內部類就是沒有類名的區域性內部類
b.沒有顯示的繼承或實現介面的關鍵字,但是可以繼承或者實現介面,如本例中就隱式實現了myinte***ce介面
JAVA學習 內部類
靜態成員不能訪問非靜態成員。內部類可以訪問外部類private成員,反之不成立。非靜態內部類不能擁有靜態成員。介面內部類預設為public static。子類繼承內部類父類,會自動呼叫非靜態內部類構造器,此時子類構造器必須存在乙個外部類物件。inte ce jiekou abstract class...
Java內部類 Java例項內部類
例項內部類是指沒有用 static 修飾的內部類。示例 如下 public class outer 上述示例中的 inner 類就是例項內部類。例項內部類有如下特點。1 在外部類的靜態方法和外部類以外的其他類中,必須通過外部類的例項建立內部類的例項。public class outer inner1...
Java內部類 靜態內部類
靜態內部類是外部類的靜態成員,不依賴於外部類的物件而存在,因此在外部類外面建立靜內部類物件時不需要首先建立外部類的物件 靜態內部類也可以稱為靜態巢狀類或頂級巢狀類。靜態內部類與外部類物件之間不存在著對成員的共享關係,靜態內部類其實已經脫離了外部類的控制 static關鍵字只是說明其在建立物件的時候不...