成员内部类
主程序App.java
public class App {
  public static void main(String[] args) {
    Outer outer = new Outer();
    //通过外部类来实例化内部类
    Outer.Inner inner = outer.new Inner();
    //内部类方法
    inner.in();
    //获得内部类的私有属性
    inner.getID();
    //获得外部类的私有方法
    inner.getOut();
  }
}
成员内部类Outer.java
public class Outer {
  private int id = 901;
  private void out(){
    System.out.println("外部类方法");
  }
  class Inner{
    //内部类方法
    public void in(){
      System.out.println("内部类方法");
    }
    //获得外部类的私有属性
    public void getID(){
      //输出外部类私有属性
      System.out.println(id);
    }
    //获得外部类私有方法
    public void getOut(){
      //输出外部类私有方法
      out();
    }
  }
}
执行结果
内部类方法
901
外部类方法
静态内部类
static关键字
 Outer类
public class Outer {
  private int id=8888;
  private void out(){
    System.out.println("外部类方法");
  }
  public static class Inner{
    //静态内部类方法
    public void in(){
      System.out.println("静态内部类方法");
    }
  }
}
一个java类中可以有多个class文件,但是只能有一个public class
 Outer类
public class Outer {
  private int id=8888;
  private void out(){
    System.out.println("外部类方法");
  }
  public static class Inner{
    //内部类方法
    public void in(){
      System.out.println("内部类方法");
    }
  }
}
class Out{
  public static void main(String[] args) {
    Outer.Inner inner = new Outer.Inner();
    inner.in();
  }
}
执行结果
内部类方法










