Java放弃之旅(九&十)-接口和内部类

接口,应该是软件开发中绕不过去的路

(真·) 简述接口

      为了达到完全解耦的目的,接口扮演了重要角色。通常类的继承可能会限制代码的复用,接口可以解决这类问题。子类可以继承自一个具体类与多个接口,书写时具体类在前,接口在后,接口很重要建议自己看详细的书,配合多态与内部类更佳
接口就讲到这里了,告辞,开始内部类。

内部类

      内部类的使用,内部类可以使代码的层次明晰。内部类的概念就是指在类的内部,定义其他类,这样,内部类可以与外部类进行通信。
      内部类的使用方法之一是链接外部类,内部类可以随意的使用外围对象的所有成员,不需要其他任何特殊条件。
      为什么内部类可以访问外部类的所有成员?当外部类创建时会创建内部类对象,内部类对象会捕获外部类对象的引用,所以内部类访问对象实际上是用外部类的引用进行访问

  • 在内部类中创建外部类引用可以使用ClassName+.this.
  • 在外部类创建内部类引用可以使用InnerClassName+.new.
匿名内部类(隐藏名称的内部类)

      匿名内部类就是在new基类时,在其后加入子类的声明,并将子类对象向上转型后给予new的基类简化了代码的编写。

嵌套类(静态内部类)

      嵌套类就是指的静态的内部类,类的声明前缀有static。

  • 要创建嵌套类的对象,不需要创建外围类的对象;
  • 要使用外围类对象时,被使用的外围类对象应该也是static属性;
  • 普通内部类的字段和方法,不能再内部类中声明,应该在外围类声明,也就是说普通内部类不应该包含static字段与static数据,也不能包含嵌套类,但是嵌套类却可以。
  • 通常情况下,接口内不能放置类,接口内部的属性默认是public与static,但是嵌套类却可以在其中使用,你可以在接口的内部类实现其外围类的接口。
闭包与回调

      内部类是面向对象的闭包,闭包是指一个可调用的对象,它包含一些信息,这些信息来自于创建它的作用。因为内部类可以访问外围类的信息,还链接了外围类引用,故它是面向对象的闭包。

内部类的继承

      内部类的继承不能直接通过外围类引用,必须在子类的构造器中声明,这样才能提供外围类的引用。

enClosingClassReference.super();

内部类的覆盖不会达到预期效果,因为不属于同一个命名空间。但是如果要实现也是可以,可以准确的继承内部类来达到效果。

局部内部类

      局部内部类不能有修饰符,它不是外围类的一部分,但是它能够使用当前代码的常量以及外围类的所有成员。局部内部类是指在代码块中创建内部类。

内部类的标识符

      内部类也会生成.class文件,他的命名方式是:外围类+$+内部类的名字。如果是匿名内部类则是外围类名字+$+数字

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值