在 Java 中,靜態(tài)內(nèi)部類是一種嵌套在另一個(gè)類中的類,它被聲明為靜態(tài)的,因此不需要引用外部類的實(shí)例。靜態(tài)內(nèi)部類與非靜態(tài)內(nèi)部類(也稱為成員內(nèi)部類)不同,非靜態(tài)內(nèi)部類可以訪問(wèn)外部類的成員變量和方法,而靜態(tài)內(nèi)部類只能訪問(wèn)外部類的靜態(tài)成員變量和方法。
靜態(tài)內(nèi)部類的語(yǔ)法如下:
在上面的代碼中,InnerClass 是一個(gè)靜態(tài)內(nèi)部類,可以通過(guò) OuterClass.InnerClass 的方式訪問(wèn)它。靜態(tài)內(nèi)部類可以像普通類一樣使用,包括創(chuàng)建實(shí)例、調(diào)用方法等。靜態(tài)內(nèi)部類還可以訪問(wèn)外部類的靜態(tài)成員變量和方法,例如:
在上面的代碼中,InnerClass 訪問(wèn)了外部類的靜態(tài)成員變量 staticField,但不能訪問(wèn)外部類的實(shí)例變量 instanceField。
靜態(tài)內(nèi)部類通常用于實(shí)現(xiàn)某個(gè)接口或抽象類,或者為外部類提供一些靜態(tài)輔助方法或常量。它也可以用于將一些較小的類封裝在一個(gè)類中,以便更好地組織代碼。
總之,靜態(tài)內(nèi)部類是一種嵌套在另一個(gè)類中的靜態(tài)類,它與外部類的實(shí)例無(wú)關(guān),只能訪問(wèn)外部類的靜態(tài)成員變量和方法。靜態(tài)內(nèi)部類可以像普通類一樣使用,可以用于實(shí)現(xiàn)接口、提供靜態(tài)輔助方法等。