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();
                    }
                } );
            }
            
            
        }
        
    }
  • 相关阅读:
    终于,我还是对自己的博客下手了
    对字典进行排序
    小米官网的css3导航菜单
    背景色渐变
    处理手机上点击链接出现的蓝色边框
    如何修改HTML5 input placeholder 颜色
    自定义浏览器滚动条样式
    两行文字,固定宽高,超出部分以三点隐藏
    css3控制div上下跳动-效果图
    css3控制div上下跳动
  • 原文地址:https://www.cnblogs.com/lxh520/p/8285353.html
Copyright © 2011-2022 走看看