静态内部类

  • 静态内部类
  • 不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员。
//外部类
public class Outer{
  private String name = "xxx";
  private int age = 18;
  
  //静态内部类:和外部类相同
  static class Inner{
    private String address = "上海";
    private String phone = "111";

    //静态成员
    private static int count = 1000;
    public void show(){
      //如何调用外部类的属性呢
      //1.先创建外部类对象
      Outer outer = new Outer();
      //2.调用外部类对象的属性
      System.out.println(outer.name);
      System.out.println(outer.age);
      //调用静态内部类的属性和方法
      System.out.println(address);
      System.out.println(phone);
      //调用静态内部类的静态属性
      System.out.println(Inner.count);
    }
  }
}
public class TestOuter{
  public static void main(String[] args){
    //直接创建静态内部类对象
    Outer.Inner inner = new Outer.Inner();
    //调用方法
    inner.show();
  }
}
  • 只有内部类可以用static修饰,普通的类无法用static修饰
  • 只能直接访问外部类的静态成员(实例成员需实例化外部类对象)。
    • Outer.Inner inner = new Outer.Inner();
    • Outer.Inner.show();
posted @ 2022-01-12 10:48  摘星丶仙  阅读(20)  评论(0)    收藏  举报