我的內部類筆記

2021-05-04 09:53:51 字數 1510 閱讀 8096

一、認識一般類的類,方法,變數之間的訪問:

(1) 靜態的成員或方法直接用類名訪問,非靜態的要通過類的物件訪問

(2) 靜態方法不能訪問非靜態成員,不能呼叫非靜態方法

(3) 非靜態方法可以訪問靜態成員,可以呼叫靜態方法

(4) 成員變數在類體中都是可見的【建立在(1),(2)的基礎上】,但private的成員變數只在該類的類體中可見

(5) 非final的區域性變數在方法結束後就失效,不可再訪問,但final的依然存在,可以訪問

(6) 成員變數,成員方法的修飾符:

訪問控制 public default protected private

其它:static final

(7) 區域性變數

只能是default 或final

二、認識內部類:

1,成員內部類

a)  非靜態成員內部類---------->相當於非靜態成員 

b)  靜態成員內部類------------>相當於靜態成員

從訪問方式分析:

從內部類中訪問外部類的變數

a) 不愛限制 this代表內部類物件  out.this代表外部類  (4)

b) 不能訪問非靜態的成員 (2)/(4)

從外部類中訪問內部類:

a) / b)   訪問不受限制,可通過建立內部類的例項訪問 (4)

從外部類外訪問內部類

a)  建立外部類的例項,再通過該例項建立內部類例項訪問 new out().new inner().name (1)

b)  不用建立外部類物件,通過外部類名建立內部類例項訪問  out.new inner().name  (1)

***如果內部類的成員變數是private的就不能訪問了  (4)

2,方法內部類--------->相當於區域性變數  只能是default / final / abstract  (7)

c)  非靜態方法內部類

可自由訪問外部類的成員(3),但不能訪問方法的final區域性變數(5)

e)  靜態方法內部類

不能訪問外部類的非靜態成員或方法(2)

例子:public void outer

//靜態成員內部類

static class inner_2

//非靜態方法

void method1()  

}//靜態方法

static void method2 ()  

}}         

/**  注:對內部類之間的呼叫關鍵在於理解一般類之間的呼叫情況,在此基礎上參照比較。

*/3,匿名內部類

實現介面的所有方法(佔絕大多數)

介面(父類)------------------------------------->>>匿名實現類(匿名子類)

(複寫父類的方法或擴充套件自己的方法)

public class outer;}

).start();

}}    

/** 建立匿名內部類與建立其物件要一起進行

*/

我的Java筆記 內部類

1.定義 在乙個類中定義另乙個類,那麼則為內部類 2.內部類可以訪問外部類的成員,包括私有 外部類想要訪問內部類的成員,必須通過建立內部類的物件訪問該內部類的成員 3.內部類的分類 1 成員內部類 在外部類的成員位置 2 區域性內部類 在外部類的區域性位置定義的這個類 4.在測試類中訪問成員內部類中...

內部類 內部類的訪問 匿名內部類

內部類 將乙個類定義在另乙個類的裡面,對立面那個類就成為內部類 內建類,巢狀類 定義 當描述事物時,事物的內部還有事物,該事物用內部類來描述。因為內部事務在使用外部事物的內容。舉例子心臟 內部類的訪問規則 1內部類可以直接訪問外部類中的成員,包括私有。之所以可以直接訪問外部類的成員 因為內部類中持有...

內部類 成員內部類 區域性內部類 匿名內部類

public class 外部類 private int num 0 外部類如果要訪問內部類的成員,則需要通過內部類的物件訪問 使用方式 1.外部類使用內部類,主函式再使用外部類 2.通過new的方式 外部類.內部類 物件名 new 外部類 new 內部類 定義在方法內部的類,就是區域性內部類,只有...