Java中,內部類是指在一個類的內部定義的類。內部類可以分為靜態(tài)內部類和實例內部類。
靜態(tài)內部類
靜態(tài)內部類是定義在外部類中的一個靜態(tài)類。它可以通過外部類名直接訪問,也可以通過內部類名訪問,但需要加上外部類名限定符。下面是一個靜態(tà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是一個靜態(tài)內部類,它可以直接訪問OuterClass的靜態(tài)成員outerData,但不能訪問OuterClass的非靜態(tài)成員innerData。
實例內部類
實例內部類是定義在外部類中的非靜態(tài)類。它可以直接訪問外部類的所有成員,包括靜態(tài)成員和非靜態(tà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是一個實例內部類,它可以直接訪問OuterClass的靜態(tài)成員outerData和非靜態(tài)成員innerData。
總之,靜態(tài)內部類和實例內部類都是定義在外部類中的內部類,它們各自有自己的作用和特點。
下一篇php 寫入