什麼是匿名內部類
如果在乙個類裡面定義乙個類,那麼這個類就是內部類,外面的那個類就是外部類,這個很好理解。內部類就相當於外部類的乙個成員,你可以把內部類看成乙個整體。內部類分為:靜態內部類,非靜態內部類。匿名內部類是非靜態內部類的一種特殊情況,匿名內部類沒有類名,因此就不可能有建構函式,不能建立物件。除此之外還有區域性內部類,就是定義在方法內的,這個一般不怎麼用,不需要掌握,知道就好,本文主要說匿名內部類,其他內部類以後會說。
如果介面的實現類只需要使用唯一的一次,那麼這種情況下就可以省略掉該類的定義,而改為使用【匿名內部類】。
如果介面的實現類需要使用多次,那麼需要直接實現該介面,而不是用匿名內部類實現。
對格式「new 介面名稱() 」進行解析:
new代表建立物件的動作
介面名稱就是匿名內部類需要實現哪個介面
這才是匿名內部類的內容
注意:匿名內部類不能定義任何靜態成員、方法。
匿名內部類中的方法不能是抽象的;
匿名內部類必須實現介面或抽象父類的所有抽象方法。
匿名內部類訪問的外部類成員變數或成員方法必須用static修飾;
**:介面
public
inte***ce
inner
抽象類
public
abstract
class
inner1
implements
inner
實現了介面的部分功能
普通類
public
class
inner2
implements
inner
}//實現了介面的全部功能
外部類
public
class
outer
private
static string method2()
public
static
void
main
(string[
] args)})
;// 測試2,inner1為抽象類
outer.
method1
(new
inner1()
});// 測試3,inner2為普通類
outer.
method1
(new
inner2()
});// 測試4,inner2為普通類
outer.
method1
(new
inner2()
});}
}
列印:
this is s1 in inner
this is s2 in outer
this is s3 in outer
this is method2 in outer
內部類,匿名內部類
內部類 概念 自己想到的 內部類是一種可以直接訪問外部類的一類事物 內部類訪問外部類中的成員,包括私有。之所以可以訪問外部類的成員,是因為內部類持有了外部類的乙個引用,格式為 outer.this.x 外部類訪問內部類成員,需要宣告內部類的物件。其他類訪問內部類方法 當內部類處在成員變數的位置時,就...
內部類 匿名內部類
把類定義在其他類的內部,這個類就叫內部類。內部類分為 成員內部類 區域性內部類。內部類訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類訪問內部類的成員,必須建立物件。區域性內部類是定義在乙個方法或者乙個作用域裡面的類。public class outer 在區域性位置建立內部類物件,調內部...
內部類 匿名內部類
package org.lgy.study.innerclass public class anonymoustest public static void main string args public string getname public double getprice inte ce p...