什么是內(nèi)部類?Static Nested Class和Inner Class的不同?
2022-08-06 09:12 作者:網(wǎng)星軟件 | 我要投稿
內(nèi)部類就是在一個(gè)類的內(nèi)部定義的類,內(nèi)部類中不能定義靜態(tài)成員。
內(nèi)部類作為其外部類的一個(gè)成員,因此內(nèi)部類可以直接訪問外部類的成員。但有一點(diǎn)需要指出:靜態(tài)成員不能訪問非靜態(tài)成員,因此靜態(tài)內(nèi)部類不能訪問外部類的非靜態(tài)成員。
如果內(nèi)部類使用了static修飾,那這個(gè)內(nèi)部類就是靜態(tài)內(nèi)部類,也就是所謂的static Nested Class;如果內(nèi)部類沒有使用修飾,它就是Inner Class。除此之外,還有一種局部?jī)?nèi)部類:在方法中定義的內(nèi)部類就是局部?jī)?nèi)部類,局部?jī)?nèi)部類只在方法中有效。
對(duì)于Static Nested Class來說,它使用了static修飾,因此它屬于類成員,Static Nested Class的實(shí)例只要寄生在外部類中即可。因此使用Static Nested Class十分方便,開發(fā)者可以把外部類當(dāng)成Static Nested Class的一個(gè)包即可。
對(duì)于Inner Class而言,它是屬于實(shí)例成員,因此Inner Class的實(shí)例必須寄生在外部類的實(shí)例中,因此程序在創(chuàng)建Inner Class實(shí)例之前,必須先獲得一個(gè)它所寄生的外部類的實(shí)例。否則程序無法創(chuàng)建Inner Class的實(shí)例。
標(biāo)簽: