一、認識一般類的類,方法,變數之間的訪問:
(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 內部類 定義在方法內部的類,就是區域性內部類,只有...