06 接口与内部类

接口是一种特殊的抽象类

public interface Comparable<T>{}  // 泛型类型接口

实现接口时, 要实现接口的所有方法

class Employee implements Comparable<Employee> {}

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

对象克隆

Employee original = new Employee("John Public", 50000);

Employ copy = original;  // 这句话并不是真正意义的克隆, 而是为堆内存中得对象增加了一个指向它的指针, 现在有两个指针指向它, original, copy

copy.raiseSalary(10);

 

Emloy copy = orginal.clone();  // 这样就在堆上又开辟了一块新内存, 并用指针 copy 指向这块内存.

不过事情没有那么简单, clone方法是Object类的一个protected方法, 也就是说, 在用户编写代码中不能直接使用它, 子类只能调用clone方法克隆它自己, 另外必须重新定义clone方法, 并将它声明为 public, 尽量不要使用克隆, 因为还有很多其他限制.

接口与回调

回调是一种常见的设计模式, 在这种模式中, 可以指出某个特定事件发生时应该采取的动作. 例如: 可以指出在按下鼠标或选择某个菜单项时应该采取什么行动

class TimePrinter implements ActionListener {
    public void actionPerformed(ActionEvent event) {
        Date now = new Date();
        System.out.println("At the tone, the time is " + now);
        Toolkit.getDefaultToolkit().beep();
    }
}
View Code

Timer t = new Timer(10000, listener);

Timer 构造器第一个参数是时间间隔, 单位是毫秒, 第二个参数是监听器对象.

t.start(); 启动定时器

代理

代理可以在运行时创建一个实现了一组给定接口的新类, 这种功能只有在编译时无法确定需要实现哪个接口时才有必要使用, 对于应用程序设计人员来说, 遇到这种情况的机会很少.

果断先跳过, 以后需要再看.

posted @ 2014-06-07 12:30  神之一招  阅读(200)  评论(0编辑  收藏  举报