----------- android培訓、java培訓、java學習型技術博客、期待與您交流! ------------
內部類:類中之類
適用特點:類的內部具有可以抽象的事物(即此事物也有有屬性和行爲,用程序的眼光來看能抽象出一個類),這時就用內部類來描述這種事物。
內部類只有定義在成員變量的位置上時才能被private或static修飾
內部類位於成員變量的位置上時且非私有(非靜態)有時:
1.適用於成員變量的規則,可以直接訪問其所在類的成員(成員函數和成員變量),被private修飾的成員也可訪問
2.若內部類中有和其所在類中同名的變量,要想訪問外部類中的變量,格式爲:外部類類名.this.變量名;(即外部類類名爲外部類的引用)
3.此時外部類要想訪問內部類就要創建內部類的對象,格式如下:
外部類名.內部類名 變量名=外部類對象.內部類對象;(私有時不能這樣調用)
內部類位於成員變量的位置上時且非私有(靜態)有時:
適用靜態對象所適用的規則,
所以內部類中定義靜態成員時內部類應爲靜態內部類
外部類中的靜態成員要想訪問一個內部類,根據靜態成員所適用的規則,此內部類也必須是靜態的
內部類位於外部類的局部變量(函數內部)的位置上時:
1.不可以被成員修飾符所修飾,即不能被private所修飾
2.可以直接訪問外部類中的成員,因爲還持有外部類的引用,但不可以訪問它所在的局部中的變量,只能訪問局部常量(java規定)
匿名內部類 (就是一個匿名子類對象,一種簡寫格式,主要爲了調用方法,所以匿名內部類中的方法最好不要超過三個):
定義前提:必須繼承一個父類或者實現接口
格式:
new 父類或接口(){
定義子類內容
} 可以理解爲:一個帶內容的”胖“對象。