成员内部类

成员内部类

  • 在类的内部定义,与实例变量、实例方法同级别的类。
  • 外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象。
    • Outer out = new Outer();
    • Inner in = out.new Inner();
//外部类
public class Outer{
  //实例变量
  private String name = "张三";
  private int age = 20;

  //内部类
  class Inner{
    private String address = "北京";
    private String phone = "110";

    //方法
    public void show(){
      //打印外部类的属性
      System.out.println(name);
      System.out.println(age);
      //打印内部类中的属性
      System.out.println(address);
      System.out.println(phone);
    }
  }
}
public class TestOuter{
  public static void main(String[] args){
    //1.创建外部类对象
    Outer outer = new Outer();
    //2.创建内部类对象
    Inner inner = outer.new Inner();

    //一步到位
    Inner inner2 = new Outer().new Inner();

    inner.show();
    inner2.show();
  }
}
  • 当外部类、内部类存在重名属性时,会优先访问内部类属性。
public class Outer{

  private String name = "张三";

  class Inner{
    
    private String name = "李四";

    public void show(){
      //内部类属性和外部类的属性名字相同Outer.this
      System.out.println(Outer.this.name);
    }
  }
}
  • 成员内部类不能定义静态成员。(注:但是能包含静态常量。)
posted @ 2022-01-12 10:16  摘星丶仙  阅读(21)  评论(0)    收藏  举报