匿名內部類

2021-10-08 05:03:04 字數 1528 閱讀 3308

什麼是匿名內部類

如果在乙個類裡面定義乙個類,那麼這個類就是內部類,外面的那個類就是外部類,這個很好理解。內部類就相當於外部類的乙個成員,你可以把內部類看成乙個整體。內部類分為:靜態內部類,非靜態內部類。匿名內部類是非靜態內部類的一種特殊情況,匿名內部類沒有類名,因此就不可能有建構函式,不能建立物件。除此之外還有區域性內部類,就是定義在方法內的,這個一般不怎麼用,不需要掌握,知道就好,本文主要說匿名內部類,其他內部類以後會說。

如果介面的實現類只需要使用唯一的一次,那麼這種情況下就可以省略掉該類的定義,而改為使用【匿名內部類】。

如果介面的實現類需要使用多次,那麼需要直接實現該介面,而不是用匿名內部類實現

對格式「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...