内部类

定义在其他类内部的类叫做内部类(嵌套类),包含内部类的类被称为外部类(宿主类)。
接口里也可以定义内部类,但只能用 public static修饰。
内部类比外部类多三个修饰符:private,protected,static。
private修饰的内部类只能被外部类使用。
作用:
   提供更好的封装性,把一个类隐藏在外部类以内,不允许其他类访问。
  
分类:
成员内部类(非静态内部类,静态内部类)局部内部类,匿名内部类。
非静态内部类:
  非静态内部类不能有静态成员。
  非静态内部类可以直接访问外部类的private成员。
  调用非静态内部类的实例方法时(或者访问非静态类成员),必须有一个非静态内部类的实例,且非静态内部实例必须寄生在外部类的实例里。
  非静态内部类的构造器必须使用外部类对象来调用。
 
 静态内部类:
使用static修饰的内部类叫做静态内部类(类内部类),
静态内部类属于外部类本身,而不属于外部类的某个对象。
静态内部类可以有静态成员,也可以有非静态成员。
静态内部类只能访问外部类的静态成员。
外部类可以通过静态内部类的类名直接访问静态内部类的静态成员,通过静态内部类的实例访问静态内部类的实例成员。
局部内部类:
如果把一个内部类定义在一个方法里,那么这个类就叫做静态内部类。
局部内部类不能在包含它的方法以外使用。
局部内部类不能使用访问控制符和static修饰符。
局部内部类定义变量,创建实例,派生子类都只能在局部内部类所在的方法里进行。
匿名内部类:
定义:
   new 实现接口(){}||new f=父类构造器(参数){}
如果一个类只需要使用一次,那么就可可以创建匿名内部类。
匿名内部类必须继承一个父类,或者实现一个接口。但也只能是一个。
匿名内部类不能作为抽象类或者接口。
匿名内部类不能定义构造器。
匿名内部类拥有相同参数列表的构造器。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值