Java接口、lambda表达式与内部类——接口示例

1.接口与回调:

    回调模式中可以指出某个特定事件发生时应该采取的动作,例如每十秒触发一个事件等等

2.javax.swing.JOptionPane 1.2:

    static void showMessageDialog(Component parent,Object message)

    显示一个包含一条消息和OK按钮的对话框。这个对话框将位于其parent组件的中央。如果parent为null,对话框将显示在屏幕的中央

3.javax.swing.Timer 1.2:

    Timer(int interval,ActionListener listener)

    构造一个定时器,每隔interval毫秒通告listener一次

    void start()

    启动定时器。一旦启动成功,定时器将调用监听器的actionPerformed

    void stop()

    停止定时器,一旦停止成功,定时器将不再调用监听器的actionPerformed

4.java.awt.Toolkit 1.0:

    static Toolkit getDeaultToolkit()

    获得默认的工具箱。工具箱包含有关GUI环境的信息

    void beep()

    发出一声铃响

5.Comparator接口:

    这个接口对应Arrays.sort的第二个版本,有一个数组和一个比较器(comparator)作为参数,比较器是实现了Comparator接口的类的实例:

    public  interface Comparator<T>{

        int compare(T first,T second);

    }

    要按长度比较字符串,可以如下定义一个实现Comparator<String>的类:

    class LengthComparator implements Comarartor<String>{

        public int compare(String first,String second){

            return first.length()-second.length();

        }

    }

    具体完成比较时,需要建立一个实例:

    Comparator<String> comp = new LengthComparator();

    if(comp.compare(words[i],words[j]>0))...

    排序的时候需要为Arrays.sort方法传入一个人LengthComparator对象:

    String[] friends = {"Peter","Paul","Mary"};

    Arrays.sort(firends,new LengthComparator);

6.对象克隆(Cloneable接口):

    这个接口指示一个类提供了一个安全的clone方法

    clone方法是Object的一个protected方法

    默认的克隆操作是“浅克隆”,并没有克隆对象中引用的其他对象

    对于每个类需要确定:

    1)默认的clone方法是否满足要求

    2)是否可以在可变的子对象上调用clone来修补默认的clone

    3)是否不该使用clone

    实现Cloneable接口;重新定义clone方法,并指定public访问修饰符

    Cloneabel接口的出现与接口的正常使用并没有关系。它没有指定clone方法,这个方法是从Object类继承的。这个接口只是作为一个标记

    即使clone的默认(浅拷贝)实现能够满足要求,也需要实现Cloneable接口,将clone重新定义为public,再调用super.clone(),例如:

    class Employee implements Cloneable{

        public Employee clone() throws CloneNotSupportedException{

            return (Employee)super.clone();

        }

    }

    在Java SE 1.4之前,clone方法的返回类型总是Object,而现在可以为你的clone方法指定正确的返回类型

    所有数组类型都有一个public的clone方法,而不是protected。可以使用这个方法建立一个新数组,包含原数组所有元素的副本

猜你喜欢

转载自blog.csdn.net/qq_38386085/article/details/80794116