zoukankan      html  css  js  c++  java
  • 匿名内部类

    今天碰到个问题,循环绑定了click事件后,变量都是最后一个。

    原来匿名内部类要用final来声明所在的方法的变量。

    -----------------------------------

    因为虽然匿名内部类在方法的内部,但实际编译的时候,内部类编译成Outer.Inner,

    这说明内部类所处的位置和外部类中的方法处在同一个等级上,

    外部类中的方法中的变量或参数只是方法的局部变量,这些变量或参数的作用域只在这个方法内部有效。

    因为编译的时候内部类和方法在同一级别上,所以方法中的变量或参数只有为final,内部类才可以引用。

    final 关键字是什么意思

    --------------------------------

    就是用final 定义变量后 就不可在赋值。

    例如 final int i=100。这个i的值永远都是100。

    但是对于变量来说又不一样,只是标识这个引用不可被改变,

    例如 final File f=new File("c:\\test.txt");

    那么这个f一定是不能被改变的,如果f本身有方法修改其中的成员变量,

    例如是否可读,是允许修改的。

    形象的比喻:一个女子定义了一个final的老公,这个老公的职业和收入都是允许改变的,只是这个女人不会换老公而已。

  • 相关阅读:
    3.css中的颜色
    5.html5中的路径表示
    4.html5中超链接
    3.html5的文本元素
    2.html5的基本格式
    1.html5究竟是什么
    2.css选择器
    C++11--智能指针shared_ptr,weak_ptr,unique_ptr <memory>
    C++11--编译器生成的函数
    C++11--右值引用(Perfect Forwarding)
  • 原文地址:https://www.cnblogs.com/shenbin/p/2437788.html
Copyright © 2011-2022 走看看