接口与内部类

来源:互联网 发布:数据挖掘算法的作用 编辑:程序博客网 时间:2024/04/30 01:32

2015年1月24日 15:49:39

 

6.1接口

·接口不是类,是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义;

·接口中的方法自动的属于public。因此,在接口中声明方法时,不必提供关键字public;

·接口中的域将自动被设为public static final;

·接口绝不能含有实例域,也不能在接口中实现方法;提供实例域和方法实现的任务应由实现接口的类完成;

·让类实现一个接口:①将类声明为实现给定的接口:class X implements Comparable

                              ②对接口中的所有方法进行定义,定义时应将方法声明为public;

6.1.1接口的特征:

·接口不是类,不能用new实例化一个接口;

·不能构造接口的对象,能声明接口的变量,接口的变量必须引用实现了接口的对象;

·可用instanceof检查一个对象是否实现了某个特定的接口;

·接口可以扩展,允许多条存在较高通用性的接口到较高专用性接口的链(类似于类的继承)extends;

·接口中不能包含实例域或静态方法,但是可以包含常量;

6.1.2接口与抽象类:

·有些类属于多个超类,则用接口的方式实现继承的大部分功能;

 

6.2对象的克隆:

·克隆clone方法为Object类的一个proteced方法,用户代码不能直接调取;

·使用clone方法:①默认的clone方法是否满足需求;②默认的clone方法是否可用调用可变子对象clone修补;

                          ①实现Cloneable接口;②使用public访问修饰符重新定义clone方法;

·子类使用超类clone方法可能会出问题,由此对超类的clone设置为protected;

·所有的数组类型都包含一个clone方法,且为public;

 

6.3接口与回调:

·回调:支出某个特定事件发生时应采取的动作;

·java.swing包中Timer类,可在给定时间间隔发出通告;

 定时器需要知道调用何种方法,且传递对象所属类实现了java.awt.event包中的ActionListener接口;

 

6.4内部类:

·定义在另一个类中的类:①内部类可以访问该类定义所在的作用域中的数据,包括私有数据;

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

                                     ③想定义一个回调函数而不实用大量代码,使用匿名内部类较便捷;

6.4.1使用内部类访问对象状态:

·一个方法可以应用调用这个方法的对象数据域;

·内部类既可以访问自身数据域,也可以访问它的外围对象的数据域;

 

0 0
原创粉丝点击