【Java】学习笔记——内部类

 作用:

  • 内部类可以让我们将逻辑上相关的一组类组织起来,并由外部类(outer class)来控制内部类的可见性。
  • 当我们建立一个inner class时,其对象就拥有了与外部类对象之间的一种关系,这是通过一个特殊的this reference形成的,使得内部类对象可以随意的访问外部类中所有的成员。

 

注意:

  • 内部类可以放置在外部类的方法、条件语句、语句块及类自身中,但无论内部类嵌套多深,其都可以访问外部类的所有成员
  • 内部类可以声明为private或protected;还可以声明为abstract或final。

  • 内部类可以声明为static的,但此时就不能再使用外部类的非static的成员变量和非static的成员方法;

  • 非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员。

 

 

获取内部类对象的方法:

  1. Outer.Inner inner = outer.new Inner()
  2. Outer.Inner inner = outer.getInner()

    说明:其中outer为Outer的一个实例,getInner()为Outer中定义的获取Inner对象的方法,实现如上代码。

 

 

应用:

  • 一个类继承自一个内部类,则需要建立外部内的引用,代码如下:

  • 内部类实现接口及匿名内部类,代码如下

 

  • 通过内部类实现在C++中通过多继承才能实现的功能

或者

 

 

为什么使用内部类

  1.   在内部类中,可以随意的访问外部类的成员,这可以让我们更好地组织管理我们的代码,增强代码的可读性
  2. 内部类可以用于创建适配器类,适配器类是用于实现接口的类。使用内部类来实现接口,可以更好地定位于接口关联的方法在代码中的位置




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值