zoukankan      html  css  js  c++  java
  • 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(); 启动定时器

    代理

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

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

  • 相关阅读:
    装饰模式
    You can't specify target table 'a' for update in FROM clause
    Spring事务知识点
    JAVA中的volatile关键字
    验证HashSet和HashMap不是线程安全
    ZYNQ7000 通过FPGA Manager加载比特流
    verilog中可综合的task使用
    verilog条件编译
    Vivado debug异常现象
    Matlab相关函数使用
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3774620.html
Copyright © 2011-2022 走看看