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(); 启动定时器

    代理

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

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

  • 相关阅读:
    java 基础知识学习 priorityQueue
    MySQL 学习三 关于转义
    java基础知识 学习 关于URL中传递的参数含有特殊字符
    MYSQL学习二 关于左连接
    大型网站架构体系的演变
    java 最佳实践
    Spring boot 学习 九
    七: git每次push都输入用户名,密码
    【JS】自学
    【CSS3】CSS3自学
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3774620.html
Copyright © 2011-2022 走看看