1. 程式人生 > >Java外部類外部訪問

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(“靜態內部類非靜態方法”);   }  } }