Java 內部類和匿名類

2021-09-12 01:56:27 字數 852 閱讀 1059

一 內部類

內部類是定義在另乙個類內部的類.

1.內部類被當作外部類的成員,因此內部類可以直接訪問外部類的似有成員,同乙個類的成員之間可以互相訪問,但是外部類不能直接訪問內部類的成員.

2.匿名內部類,沒有具體名稱的類,在定義匿名內部類的同時系統會自動生成乙個該類的例項,匿名內部類適用於乙個類僅被使用一次的情況:

new 介面名()或類名(實參列表)
從上面的定義可以看出匿名內部類必須繼承乙個父類或實現乙個介面

建立匿名內部類時,會同時生成該匿名內部類的物件,因此不允許將匿名內部類定義成抽象的類.

例題outer類中定義了乙個成員內部類inner,需要在主方法main()中建立inner類的例項物件,以下四種方式中,哪一種是正確的?()

a. inner in = new inner();

b. inner in = new outer.inner();

c. outer.inner in = new outer.inner();

d. outer.inner in = new outer().new inner();

d內部類可以看作外部類的乙個成員變數,如果在外部類的類體中使用,與普通類使用方式相同

如果在外部類的外部使用,類名前需要冠以外部類的名字.在new乙個物件時也需要冠以外部類的名字.

對於靜態內部類和非靜態內部類,其建立方式如下:

class outer 

public static class inner2{}

}public class test

}

Java匿名類,Java匿名內部類

匿名類是指沒有類名的內部類,必須在建立時使用 new 語句來宣告類。其語法形式如下 new 類或介面 這種形式的 new 語句宣告乙個新的匿名類,它對乙個給定的類進行擴充套件,或者實現乙個給定的介面。使用匿名類可使 更加簡潔 緊湊,模組化程度更高。匿名類有兩種實現方式 下面通過 來說明。public...

java的內部類和匿名類

1.內部類 內部類的類體中不可以宣告類變數和類方法。外嵌類的類體中可以用內部類宣告物件,作為外嵌類的成員。如 public class a a b b public void show b.f class b void f system.out.println 哈哈 2.匿名類 建立子類物件時,除了...

java基礎 內部類和匿名內部類

內部類 class a 編譯後的結果 內部類編譯後都是以這種形式 外部類 內部類 如何生成內部類 class test 注意點 class a b是a的內部類,b可以使用a的成員變數,但不是繼承它,僅僅是可以使用。匿名內部類 正常的程式 inte ce aclass b class aimpl im...