java基础-内部类

1、创建内部类

内部类具有代码隐藏的功能
从外部类的非静态方法之外的任何位置创建某个内部类的对象,必须OutClassName.InnerClassName

2、链接到外部类

  • 内部类拥有其外围类的所有元素的访问权。当外部类创建了一个内部类对象时,此内部类对象就会秘密捕获指向那个外部类的引用。
  • 创建内部类时,内部类对象会捕获一个指向那个外围类对象的引用。
  • 内部类对象只有在与其外围类的对象关联时才能创建(static内部类除外)

3、.this 和 .new

.this 生成对外围对象的引用,外部类的名字紧跟.this
public Outer get(){
    return Outer.this;
}
.new 用于创建内部类对象,当生成内部类对象时,必须有外部类的实例使用外部类实例名.new 内部类名的方式创建。
    out.new Inner();

4、内部类与向上转型

内部类可以用于隐藏实现细节,将接口的实现细节实现于private内部类。

5、方法和作用域中的内部类

在方法或者作用域中定义的内部类,限制了内部类的使用范围。
局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。

6、匿名内部类

  • 创建一个继承一个基类或接口的匿名类对象。
  • 如果在匿名类中使用一个外部定义的对象,必须是final的。
  • 匿名类没有命名构造器,并且只有一个,实例化初始化可以达到构造器效果。
  • 匿名类只能扩展一个类或者接口。

7、嵌套类

  • 创建嵌套类对象不需要其外围类对象。
  • 不能从嵌套类的对象中访问非静态的外围类对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值