java基礎 匿名內部類

2021-08-19 09:22:45 字數 811 閱讀 3384

詳解—–匿名內部類

現在有乙個抽象的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 的。...