第6章 接口与内部类

来源:互联网 发布:奥尼尔体测数据84卧推 编辑:程序博客网 时间:2024/05/06 07:55

接口的所有方法都默认属于public。因此,不必要提供public关键字。


接口不是类,不能用new实现实例。但可以声明接口的变量。接口变量必须引用实现了接口的类对象。使用instanceof检测是否实现某个特定的接口。

接口中的域自动设为public static final。




内部类:

  内部类方法可以访问该类定义所在作用域中的数据,包括私有数据;

  内部类可以对同一个包中的其他类隐藏起来;

  当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。


内部类有其外部类的引用out。使用外围类引用的正规语法还要复杂一些。表达式OuterClass.this表示外围类引用。

使用下列语法格式更加明确地编写内部对象的构造器:outerObject.new InnerClass(construction parameters);

在外围类的作用域之外,可以这样引用内部类:OuterClass.InnerClass;


局部内部类不需要public等访问限定符。


与内部类相比,局部类不仅可以访问包含他们的外部类,还可以访问局部变量,不过那些局部变量必须被声明为final。


static内部类

  在内部类不需要访问外围类对象的时候,应该使用静态内部类。

  声明在接口中的内部类自动成为static和public。