Java基础六:内部类相关,成员内部类,静态内部类,局部内部类以及匿名内部类的介绍

1、内部类

内部类:定义在类内部的类。
使用内部类的好处:
(1)内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。
(2) 内部类可以对同一个包中的其他类隐藏起来。
(3)当要定义一个回调函数且不想编写大量代码时,使用内部类简洁。

成员内部类,静态内部类,局部内部类以及匿名内部类的介绍

(1) 成员内部类:存在于某个类的内部,与全局属性或者方法同级的内部类就是成员内部类。
特点:成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括静态成员和私有成员);成员内部类和外部类的属性和方法名同名时,外部类的属性和方法会隐藏;但可以通过外部类.this.成员变量的方式访问外部类的属性和方法。外部类必须通过成员内部类的对象来访问内部类的属性和方法。成员内部类对象会隐式的引用一个外部类对象。(可以解释第一点);成员内部类可以有public\private\protected以及默认访问权限。
(2) 静态内部类:在成员内部类的基础上加上一个static关键字就是静态内部类。
特点: 不需要依赖外部类;不能使用外部类的非静态属性和方法。
(3)局部内部类:是定义在一个方法或者一个作用域里面的类。它与成员内部类的区别在于局部内部类的访问仅在于方法内或者作用域内。
特点: 不能有private、public、protected和static等修饰符,与局部变量类似。只能在定义局部内部类的方法或者作用域中实例化;局部内部类的对象不能使用该内部类所在方法或者作用域的非final局部变量
(4)匿名内部类:不定义类的名字,在使用的地方直接定义对象。
特点: 唯一一种没有构造器的类;匿名内部类在编译时,编译器会自动起名xxx$1.class;匿名内部类不能存在任何静态的变量、方法等;匿名内部类是局部内部类的特例;大部分匿名内部类用于接口返回;
注意事项
 使用时,必须继承一个类或者实现一个接口(二选一)
 匿名内部类中不能定义构造函数
 匿名内部类中不能存在任何静态成员变量/方法
 匿名内部类为局部内部类,所有局部内部类的限制同样对匿名内部类生效
 匿名内部类不能是抽象,必须实现继承的类或者实现接口的所有抽象方法

部分内容来自网络,侵删

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值