上一節我們學習了內部類,這一節我們來學習匿名類。那什麼叫做匿名類別呢?顧名思義,匿名類別就是不能有名字的類,它們不能被引用,只能在創建時用new語句來聲明它們。
使用匿名內部類別我們必須要繼承一個父類別或實作一個介面。
需要注意的是:
1)匿名內部類別中是不能定義建構子的。
2)匿名內部類別中不能存在任何的靜態成員變數和靜態方法。
3)匿名內部類別為局部內部類,所以局部內部類別的所有限制同樣對匿名內部類別生效。
匿名類別語法格式如下:
classouterClass{//定義一個匿名類別object1=newType(parameterList){//匿名類別代碼};}
注意:因為匿名類別是表達式形式定義的,所以末尾以分號;來結束。
例如:
classDotcpp{publicvoiddisplay(){System.out.println(在Dotcpp類別內部);}}classAnonymousDemo{publicvoidcreateClass(){//建立的匿名類別繼承了Dotcpp類別Dotcppd1=newDotcpp(){publicvoiddisplay(){System.out. println(在匿名類別內部);}};d1.display();}}classMain{publicstaticvoidmain(String[]args){AnonymousDemoan=newAnonymousDemo();an.createClass();}}
運行結果如下:
在匿名類別內部
例如:
interfaceDotcpp{publicvoiddisplay();}classAnonymousDemo{publicvoidcreateClass(){//建立的匿名類別實作了Dotcpp介面Dotcppd1=newDotcpp(){publicvoiddisplay(){System.out.println(在匿名類別內部);}};d1. display();}}classMain{publicstaticvoidmain(String[]args){AnonymousDemoan=newAnonymousDemo();an.createClass();}}
運行結果如下:
在匿名類別內部
好了,大家可以上機實驗,消化吸收本節內容。