詳解—–匿名內部類
現在有乙個抽象的animal類,其中有乙個抽象eat()方法,如何呼叫eat()方法。普通做法是,建立乙個子類cat繼承animal,然後重寫eat()方法,建立物件cat c = new cat()
,呼叫eat()方法。
我們可以簡便寫為:new cat().eat()
,其中new cat()就是cat類的乙個匿名物件,也可以說是animal類的子類的乙個匿名物件
更為簡便的寫法就是匿名內部類:
格式:
new 類名(介面名)();//此處有分號,如果呼叫其中的方法時,直接在分號之前點方法即可(.方法())
本質就是類(介面)的子類的匿名物件
new animal()
}.eat();
匿名內部類的方式建立多執行緒物件
1、非靜態同步方法
package thread;
public
class threadnonstatic
};}.start();
new thread()
};}.start();
}}class demo
public
void
method2()
}}
2、靜態同步方法
把method1()和method2()加上static改為靜態方法,這時候method2()中的鎖物件必須為demo.class才不會出現亂序,為別的.class也會出現亂序
java基礎 匿名內部類
內部類 概念 把類定義在其他類的內部,這個類就是內部類。比如說在類a中定義了乙個內部類b,類 b就是乙個內部類。內部類的訪問特點 a 內部類可以直接訪問外部類的成員,包括私有。b 外部類要訪問內部類,必須建立物件 內部類的位置 成員內部類 類中方法外 區域性內部類 方法中 成員內部類 外部類建立物件...
java基礎 內部類和匿名內部類
內部類 class a 編譯後的結果 內部類編譯後都是以這種形式 外部類 內部類 如何生成內部類 class test 注意點 class a b是a的內部類,b可以使用a的成員變數,但不是繼承它,僅僅是可以使用。匿名內部類 正常的程式 inte ce aclass b class aimpl im...
JAVA匿名內部類
abstract class base public abstract void f public class anonymousconstructor public void f public static void main string args 在此例中,不要求變數i 一定是final 的。...