JAVA——内部类

种类
① 实例内部类: 内部类没有使用static修饰.
② 静态内部类: 内部类使用了static修饰.
③ 局部内部类: 在方法中定义的内部类.
④ 匿名内部类:适合于仅使用一次使用的类,属于局部内部类的特殊情况

在这里插入图片描述
(摘自小码哥)

一 实例内部类
没有使用static修饰的内部类,属于外部类的对象而非本身。
**特点**
  1. 创建实例内部类前,必须存在外部类对象,通过外部类对象创建内部类本(如果有内部类对象,一定存在外部类对象)
    Outter.Intter in = new Outter().newIntter();
  2. 内部类可直接访问外部类成员
  3. == 外部类不能直接访问内部类 ==,必须通过内部类的实例去访问
  4. 实例类中不能定义静态成员,只能定义实例成员
  5. 如果实例内部类和外部类中存在同时的实例和方法,那么在内部类中
    this.abc 表示访问内部类成员
    外部类.this.abc 表示访问外部类成员
静态内部类

使用static修饰的类
特点:

  1. 在创建内部类实例时,不必创建外部类实例
  2. 静态内部类可直接访问外部类的静态成员买入访问外部类的实例成员,必 须通过实例类访问
  3. 在静态内部类中可以定义静态成员和实例成员
  4. 测试类可以通过完整的类名直接访问静态内部类的静态成员
局部内部类

在方法中定义的内部类,其可见范围是当前方法与局部变量是同一级别
特点:

  1. 不能使用 public, private, protected, static 修饰符
  2. 局部内部类只能在当前方法中使用
  3. 不能包含静态成员
  4. 可以访问外部类的所有成员
  5. 局部内部类的局部变量必须用final修饰,为常量
  6. 局部内部类只能访问final修饰的局部变量
匿名内部类

没有名称的局部内部类,适用于只使用一次的类
特点:

  1. 匿名内部类本身没有构造器,但是会调用父类的构造器
  2. 内部类可以继承类和接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值