Java內部類學習小結

2021-07-25 13:59:41 字數 1090 閱讀 9280

靜態內部類(類內部類)

成員內部類(例項內部類)

方法內部類

匿名內部類

不能引用外部類的例項變數和例項方法

例項建立方式

public

class

outstaticinner

}class

newinner

不能引用外部類的類變數和類方法

不能有類成員變數和方法,可以有常量。

如果外部類的類方法m中或者類變數i的初始賦值,引用了內部類的類成員,那麼在呼叫m或者初始化i時會導致內部類的初始化,此時外部類的例項可能還沒有建立。而成員內部類是與其外部類例項繫結的,這顯然互相矛盾。

成員內部類是閉包

例項建立方式

public

class

outinstanceinner

}class

newinsinner

不能引用外部類的類變數和類方法

不能有static的成員變數和方法,可以有常量。

可用修飾符和方法變數一致(final)

不能引用外圍方法的區域性變數,除非是final的變數。

例項的建立方式,方法外部無法建立方法內部類的例項。

public

class outmethodinner

inner inner = new inner();

}}

根據匿名內部類所在位置決定其屬性

分類

public

class anonymousinner

public

static

void

main(string args)

}.method();

//介面式

new inte***ce()

}.method();

//引數式

run(new inte***ce()

});}

}class inherit

}inte***ce inte***ce

Java內部類小結

內部類 inner class 就是定義在乙個類裡面的類。與之對應,包含內部類的類被稱為外部類。內部類的主要作用 1.提供了更好的封裝。即可以隱藏在外部類之內,不允許同乙個包中的其他類訪問。2.內部類可直接訪問外部類的所有資料。3.事實上,內部類所實現的功能使用外部類同樣可以實現,只是有時使用內部類...

內部類學習小結

1.內部類能夠非常好的實現隱藏,一般的非內部類,是不同意有 private 與protected許可權的,但內部類能夠。我覺得在如今soa的環境下,隱藏實現已經習慣通過介面的形式來表達了,用內部類來隱藏實現顯得有些小家子氣。2.內部類擁有外圍類的全部元素的訪問許可權。這樣的說法感覺有些牽強,除非說內...

JAVA學習 內部類

靜態成員不能訪問非靜態成員。內部類可以訪問外部類private成員,反之不成立。非靜態內部類不能擁有靜態成員。介面內部類預設為public static。子類繼承內部類父類,會自動呼叫非靜態內部類構造器,此時子類構造器必須存在乙個外部類物件。inte ce jiekou abstract class...