学习Java的第二十八天(内部类)

内部类

Java 中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类

内部类的分类

成员内部类(静态、非静态)、局部内部类(方法内、代码块内、构造器内)

成员内部类

  1. 作为一个类:
    类内可以定义属性、方法、构造器等
    可以被final修饰,表示此类不能被继承,不使用final,就可以继承
    可以被abstract修饰,表示此类不能被实例化
  2. 作为外部类的成员:
    调用外部类的结构
    可以被static修饰
    可以被四种不同的权限符修饰

局部内部类

在局部内部类的方法中,如果调用局部内部类所声明的方法中的局部变量,要求此局部变量声明为final

内部类关注以下三个问题:

  1. 如何实例化成员内部类的对象

静态的内部类实例化:
外部类.静态内部类 变量名 = new 外部类.静态内部类();
非静态的内部类实例化:
外部类 变量名1 = new 外部类();
外部类.非静态内部类 变量名2 = 变量名1.new 非静态内部类();

  1. 如何在成员内部类中区分调用外部类的结构

当前变量:形参
当前类的变量:this.变量
外部类的变量:外部类.super.变量

  1. 开发中局部内部类的使用

较少使用`

总结

成员内部类和局部内部类,在编译以后,都会生成字节码文件

格式:

成员内部类:外部类 内 部 类 名 . c l a s s 局 部 内 部 类 : 外 部 类 内部类名.class 局部内部类:外部类 .class数字 内部类名.class

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值