博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6-4 内部类
阅读量:6713 次
发布时间:2019-06-25

本文共 2378 字,大约阅读时间需要 7 分钟。

package innerclass;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Timer;public class InnerClassT {    public static void main(String[] args) {    }        /**     * 1.局部内部类     * 类不能用public 或者 private修饰     *      * 只有start方法才可以访问     *      * 2.外部方法访问变量     *  执行actionPerformed方法的时候,局部变量已经销毁---->     *  编译器在内部类构造实例化的时候拷贝一份局部变量     *  局部变量声明为final,保持局部变量和局部类的拷贝保持一致。(若想实现累计可以声明一个数组)     *       *  3.匿名内部类     *      */    class TalkClass{                /*    int intervel;        boolean beep;                public void start(){            class TimePrint implements ActionListener {                                @Override                public void actionPerformed(ActionEvent e) {                                        if (beep) {                        Toolkit.getDefaultToolkit().beep();                    }                }                            }                        ActionListener listener = new TimePrint();            new Timer(intervel, listener);        }*/                        public void start(int intervel,final boolean beep){            class TimePrint implements ActionListener {                                @Override                public void actionPerformed(ActionEvent e) {                                        if (beep) {                        Toolkit.getDefaultToolkit().beep();                    }                }                            }                        ActionListener listener = new TimePrint();            new Timer(intervel, listener);        }                //匿名内部类        public void startThree(int intervel,final boolean beep){            ActionListener listener = new ActionListener() {                @Override                public void actionPerformed(ActionEvent e) {                    if (beep) {                        Toolkit.getDefaultToolkit().beep();                    }                }            };                        new Timer(intervel, listener).start();;        }                //lambda表达式   可见 labmda表达式必匿名内部类更简洁        public void startFour(int intervel,final boolean beep){            new Timer(intervel, even -> {                if (beep) {                    Toolkit.getDefaultToolkit().beep();                }            } );        }                    }    }

 

转载于:https://www.cnblogs.com/lxh520/p/8285353.html

你可能感兴趣的文章