什麼是內部類?內部類的作用
阿新 • • 發佈:2018-12-26
- 在java語言中,可以吧一個類定義到另外一個類的內部,在類裡面的這個類就叫內部類,外面的類就叫外部類。在這情況下,這個內部類可以看做外部類的一個成員。還有一種類被稱為頂層類,指的是類定義程式碼不巢狀在其他類定義中的類。
- 需要注意的是巢狀類與內部類類似,只是巢狀類是C++的說法。 內部類可以分為多種、;主要一下4中:靜態內部類,成員內部類,區域性內部類,匿名內部類
- 程式碼
class outerClass{
static class innerClass{} //靜態內部類
}
class outerClass{
class innerClass{} //成員內部類
}
class outerClass{
public void menberFunction{
static class innerClass{} /區域性內部類
}
}
public class MyFrame extends Frame{//外部類
public MyFrame(){
addWindowsLister(new WindowsAdapter()){ //匿名內部類
public void windowsClosing(WindowEvent e){
dispose(); System.exit(0);
}
});
}
}
4.總結程式碼
靜態內部類
一個 靜態內部類去掉static 就是成員內部類,他可以自由的引用外部類的屬性和方法,無論是靜態還是非靜態。但是不可以有靜態屬性和方法、
區域性內部類 就是定義在一個程式碼塊的內類,他的作用範圍是所在程式碼塊,是內部類中最少使用的一型別。區域性內部類跟區域性變數一樣,不能被public ,protected,private以及static修飾,只能訪問方法中定義final型別的區域性變數。
匿名內部類
在使用匿名內部類時,需要牢記以下幾個原則。
1》內部類沒有構造方法
2》匿名內部類不能定義靜態成員,方法和類
3》匿名內部類不能是public protected private static
4》只能建立匿名內部類的一個例項
5》一個匿名內部類可以在new後面,這個匿名類必須繼承一個父類或實現介面
6》因為匿名內部類為區域性內部類,所以區域性內部類的所有限制都對其生效