Java外部類外部訪問
public class Demo{ public static void main(String[]args){ //1、外部類外部訪問成員內部類; Outer out = new Outer();//建立外部類物件 Outer.Inner in = out.new Inner();//根據外部類物件建立內部類物件 in.inner_1();//內部類物件呼叫內部類方法 //2、外部類外部訪問外部類靜態成員(通過外部類類名直接呼叫外部類靜態方法); Outer.outer_2(); //3、外部類外部訪問靜態內部類;(直接new一個外部類下的內部類物件) Outer.Inner_1 inner = new Outer.Inner_1();//不需要建立外部類物件 inner.inner_2(); inner.inner_3(); } } class Outer{ private int i = 1; private int j = 2; public void outer_1(){ System.out.println(“外部類非靜態方法”); } public static void outer_2(){ System.out.println(“外部類靜態方法”); } //成員內部類 class Inner{ //內部類中不能定義靜態成員 private int i = 3; private int k = 4; public void inner_1(){ outer_2();//內部類非靜態方法直接呼叫外部類靜態方法 System.out.println(“內部類非靜態方法”); } } //靜態內部類 static class Inner_1{ static int q = 5; static void inner_2(){ System.out.println(“靜態內部類靜態方法”); } void inner_3(){ System.out.println(“靜態內部類非靜態方法”); } } }