Java 中的四大内部类

Java 中的四大内部类

内部类简单说就是定义在另一个类中的类,内部类具有一下特点:

  1. 内部类方法可以访问该类定义所在作用域中的数据,包括私有数据。
  2. 内部类可以对同一包下的其它类隐藏
  3. 定义回调函数而又不想编写太多代码时使用匿名内部类比较便捷

Java 内部类可以分为四种:

  • 普通内部类
  • 局部内部类
  • 匿名内部类
  • 静态内部类

普通内部类

普通类相比内部类具有访问拥有特权,它可以访问外围类私有成员,而外围类也可以访问它的私有成员包括私有方法。

其他类也能够实例化一个类的内部类,只是语法有点奇怪。很显然,这里内部类的访问修饰符不能是 private,否则其他类无权访问自然也不能实例化了。同样其他类实例化内部类后是没有权限访问它的私有数据域的,只能把它当作普通类来用。

静态内部类

将普通内部类声明为 static 就成了静态内部类(注意只有内部类前可以加 static),它的特点是不能够访问外围类的非静态成员。

通常静态内部类只是为了把一个类隐藏在另一个类的内部,不需要引用外围类对象。如果一个内部类声明在接口中,会自动成为 public 静态内部类。

局部内部类

局部内部类是定义在方法中的类。局部内部类不能使用 public 或 private 修饰,它的作用域只限定在所定义的方法块内,即使外围类也不能访问它,完全对外隐藏了。

局部内部类可以访问外围类的私有变量,对于本方法内数据只能访问 final 修饰的变量。

匿名内部类

匿名内部类是使用最广泛的,它没有类名但需要实现接口或继承类。因为没有类名所有它也没有构造函数,需要参数只能从父类构造器接收。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值