Java外部類(靜態/非靜態)訪問(靜態)
public class Demo1{ public static void main(String []args){ Outer out = new Outer(); out.outer();//外部類物件.外部類非靜態方法 Outer.outer1();//外部類名.外部類靜態方法 } } class Outer{ public void outer(){ //1、外部類非靜態方法訪問成員內部類非靜態方法 getInstance().inner();//第一種 Inner_1 in = new Inner_1();//第二種 in.inner(); //2、外部類非靜態方法訪問靜態內部類靜態方法 Inner_2.fun(); System.out.println(in);//引用物件地址 //3、外部類非靜態方法訪問靜態內部類非靜態方法 Outer.Inner_2 in1 = new Outer.Inner_2();//第一種 Inner_2 in2 = new Inner_2();//第二種 in1.fun1(); } public static void outer1(){ //4、外部類靜態方法訪問成員內部類非靜態方法 Outer outer = new Outer();//第一步,建立外部類物件 Inner_1 inner = outer.new Inner_1();//第二步,根據外部類物件建立內部類物件 inner.inner();//第三步,訪問內部類非靜態方法 System.out.println(inner);//引用物件地址 //5、外部類靜態方法訪問靜態內部類非靜態方法 Outer.Inner_2 in3 = new Outer.Inner_2(); in3.fun1(); //6、外部類靜態方法訪問靜態內部類靜態方法 Inner_2.fun(); } class Inner_1{ public void inner(){ System.out.println(“成員內部類非靜態方法”); } } static class Inner_2{ static void fun(){ System.out.println(“靜態內部類靜態方法”); } void fun1(){ System.out.println(“靜態內部類非靜態方法”); } } public Inner_1 getInstance(){ return new Inner_1(); } }