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();
                    }
                } );
            }
            
            
        }
        
    }
  • 相关阅读:
    shell 环境变量
    websphere 进程
    shell 安装使用VIM
    shell seq 用法
    shell 变量自增
    WebService学习笔记系列(二)
    WebService学习笔记系列(一)
    类加载器及其委托机制的深入分析
    Java工具类:给程序增加版权信息
    QQ互联API接口失效,第三方网站的死穴
  • 原文地址:https://www.cnblogs.com/lxh520/p/8285353.html
Copyright © 2011-2022 走看看