成员内部类

内部类分为:成员内部类,静态内部类(加上String就是静态内部类),局部内部类(就是写在方法里的),匿名内部类(就是一种没有名字的内部类)

什么是内部类

  • 概念:在一个类的内部在定义一个完整的类

特点

  1. 编译之后可以生成独立的字节码文件

  2. 内部类可以直接访问外部类的私有成员,而不破坏包装

  3. 可为外部类提供必要的内部功能组件

image-20210731124756186

package Thread;

public class 测试 {
   private String name;
   class wangg{
       public void shou(){
           System.out.println(name);//成功访问
      }
  }
}

成员内部类

  • 在类的内部定义,与实例变量,实例方法同级别的类

  • 外部类的一个实例部分,创建内部类对象是,必须依赖外部类对象

  • 当外部类,内部类重名属性时,会优先访问内部类属性

  • 成员内部类不能定义静态成员

//外部类
public class Outer {
  //实例变量
private String name="王刚";
private int age = 50;
//内部类
  class Inner{
      private String address="北京";
      private int phone =16;
      private String name = "李四";
      //方法
      public void show(){

          //属性外部类和内部类方法相同,会访问内部类,想用外部类的话需要外部类名+this+变量
          System.out.println(Outer.this.name);
          System.out.println(age);
          System.out.println(address);
          System.out.println(phone);
      }

}
}
public class TestOuter {
  public static void main(String[] args) {
//       //创建外部类
//       Outer outer = new Outer();
//       //创建内部类
//       Outer.Inner inner = outer.new Inner();
      //一步到位
      Outer.Inner inner = new Outer().new Inner();
      inner.show();

  }
}
posted @ 2021-08-01 14:28  πππ·  阅读(68)  评论(0)    收藏  举报