zoukankan      html  css  js  c++  java
  • 6-4 内部类

    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();
                    }
                } );
            }
            
            
        }
        
    }
  • 相关阅读:
    哈密顿绕行世界问题 (dfs)
    山东省第八届ACM大学生程序设计竞赛
    HDU
    HDU
    hdu 1241(DFS/BFS)
    centos7 df 命令卡死
    hosts文件修改之后立刻刷新
    shell脚本打印日期时间
    CentOS6设置php-fpm开机自启动
    Word中怎么设置忽略拼写和语法检查提醒
  • 原文地址:https://www.cnblogs.com/lxh520/p/8285353.html
Copyright © 2011-2022 走看看