内部类&匿名类

内部类:
整个内部类可以分为两大类,分别为属性内部类(该内部类是外部类的属性)和方法内部类(定义与方法中的)

一、局部内部类:
所谓局部内部类是指定义在类方法中的内部类,因此这种内部类也具有一些特殊的性质。局部内部类内部可以直接访问外部类的属性和方法,也可以直接访问该方法中的局部变量,但这些局部变量必须是用final定义的。


二、属性内部类:
属性内部类可以分为静态内部类和实例内部类。
静态内部类:
对于静态内部类,外部类只是提供了一个包(package)的作用,静态内部类的用法与外部类相同,此时静态内部类就相当于外部类的一个对象。因为静态内部类是static的,所以只能访问外部类的静态属性和方法。

实例内部类:
实例内部类就相当于外部类的一个普通的成员属性。
A、 实例内部类是依赖于外部类的,必须先创建外部类实例后,才能创建内部类实例。
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();

B、 实例内部类的实例自动持有外部类的实例的引用,引用形式为Outer.this(外部类名点this),在内部类中可以直接访问外部类的所有属性和方法。

C、 外部类的实例与内部类的实例是一对多的关系,即一个内部类实例只能引用一个外部类实例,但一个外部类实例可以对应多个内部类实例。

D、 在外部类中不能直接访问内部类的成员,必须通过内部类的实例去访问。

E、 实例内部类不能定义静态成员,只能定义实例成员。
关于属性内部类的细节很多,参阅java基础与实例精解


匿名类:
也没有什么好说的,只可意会,不可言传。

注意:匿名内部类是个比较常用的东东。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值