Java 內部類簡述
阿新 • • 發佈:2018-12-26
public class OuterClass { private String sex; public static String name = "chenssy"; /** *靜態內部類 */ static class InnerClass1{ /* 在靜態內部類中可以存在靜態成員 */ public static String _name1 = "chenssy_static"; public void display(){ /* * 靜態內部類只能訪問外圍類的靜態成員變數和方法 * 不能訪問外圍類的非靜態成員變數和方法*/ System.out.println("OutClass name :" + name); } } /** * 非靜態內部類 */ class InnerClass2{ /* 非靜態內部類中不能存在靜態成員 */ public String _name2 = "chenssy_inner"; /* 非靜態內部類中可以呼叫外圍類的任何成員,不管是靜態的還是非靜態的 */ public void display(){ System.out.println("OuterClass name:" + name); } } /** * @desc 外圍類方法 * @author chenssy * @data 2013-10-25 * @return void */ public void display(){ /* 外圍類訪問靜態內部類:內部類. */ System.out.println(InnerClass1._name1); /* 靜態內部類 可以直接建立例項不需要依賴於外圍類 */ new InnerClass1().display();/* 非靜態內部的建立需要依賴於外圍類 */ OuterClass.InnerClass2 inner2 = new OuterClass().new InnerClass2(); /* 方位非靜態內部類的成員需要使用非靜態內部類的例項 */ System.out.println(inner2._name2); inner2.display(); } public static void main(String[] args) { OuterClass outer = new OuterClass(); outer.display(); } } ---------------- Output: chenssy_static OutClass name :chenssy chenssy_inner OuterClass name:chenssy