Java中,內(nèi)部類是指在一個(gè)類的內(nèi)部定義的類。內(nèi)部類可以分為靜態(tài)內(nèi)部類和實(shí)例內(nèi)部類。
靜態(tài)內(nèi)部類
靜態(tài)內(nèi)部類是定義在外部類中的一個(gè)靜態(tài)類。它可以通過(guò)外部類名直接訪問(wèn),也可以通過(guò)內(nèi)部類名訪問(wèn),但需要加上外部類名限定符。下面是一個(gè)靜態(tài)內(nèi)部類的例子:
public class OuterClass { private static int outerData = 1; private int innerData = 2; public static class InnerStaticClass { public void printOuterData() { System.out.println("outerData = " + outerData); } } public void test() { InnerStaticClass innerStaticClass = new InnerStaticClass(); innerStaticClass.printOuterData(); System.out.println("innerData = " + innerData); } }
在上面的例子中,InnerStaticClass是一個(gè)靜態(tài)內(nèi)部類,它可以直接訪問(wèn)OuterClass的靜態(tài)成員outerData,但不能訪問(wèn)OuterClass的非靜態(tài)成員innerData。
實(shí)例內(nèi)部類
實(shí)例內(nèi)部類是定義在外部類中的非靜態(tài)類。它可以直接訪問(wèn)外部類的所有成員,包括靜態(tài)成員和非靜態(tài)成員。下面是一個(gè)實(shí)例內(nèi)部類的例子:
public class OuterClass { private static int outerData = 1; private int innerData = 2; public class InnerClass { public void printOuterData() { System.out.println("outerData = " + outerData); } public void printInnerData() { System.out.println("innerData = " + innerData); } } public void test() { InnerClass innerClass = new InnerClass(); innerClass.printOuterData(); innerClass.printInnerData(); } }
在上面的例子中,InnerClass是一個(gè)實(shí)例內(nèi)部類,它可以直接訪問(wèn)OuterClass的靜態(tài)成員outerData和非靜態(tài)成員innerData。
總之,靜態(tài)內(nèi)部類和實(shí)例內(nèi)部類都是定義在外部類中的內(nèi)部類,它們各自有自己的作用和特點(diǎn)。
下一篇php 寫入