1、什麼叫内部類:在一個類中定義一個類,例如:在類A中定義一個類B,則類B就是内部類
2、内部類的特點:
2.1、内部類可以直接通路外部類的成員,包括私有成員
2.2、外部類要通路内部類的成員,必須要建立對象
注意:内部類通路以及操作外部類的對象都是在方法體中的
3、什麼情況下會使用到内部類:
3.1、因為内部類提供了很好的封裝性,是以當你想要隐藏你的操作不想讓别人看到時,可以考慮用内部類
3.2、Java中内部類和接口放到一起,可以實作多繼承,是以想要繼承多個類可以使用内部類
4、内部類的分類:
4.1、在類的成員屬性的位置:成員内部類
4.2、在類的方法裡:局部内部類
5、public成員内部類,外界如何建立對象使用?
5.1、格式:外部類名.内部類名 對象名 = 外部類對象.内部類對象;
5.2、範例:Outer.Inner oi = new Outer().new Inner();
6、private成員内部類的使用:
例如:
7、局部内部類的使用:
7.1:局部内部類是在方法中建立的,外界無法直接使用,是以要在方法中建立對象來使用
7.2:該類可以直接通路外部類的成員,也可以通路方法中的局部變量
8、匿名内部類:
8.1、格式:new 類名或接口名(){ 重寫方法 };(注意:大括号最後有分号,這是很容易出錯的地方)
8.2、實質:是一個繼承了該類或者實作了該接口的匿名類對象
8.3、前提:存在一個類或者接口,這裡的類可以是具體類,也可以是抽象類
8.4、匿名内部類是局部内部類的特殊形式,是以位置也是在方法内
9、匿名類的使用:例如,貓會跳高,狗也會跳高用接口類實作,需要寫一個接口類,一個cat類去實作接口,一個dog類去實作接口,太麻煩,用匿名類會有所改進