zoukankan      html  css  js  c++  java
  • 局部内部类访问局部变量

    局部内部类是指位于方法内的类,局部内部类若要访问其所在方法内的变量,则该变量必须是final修饰的。

        public static void main(String[] args) {
    
            int a = 3; // 应当使用final修饰变量a
    
            class Inner{
                public void printA() {System.out.println("a = " + a);}
            }
        }

    Inner是位于方法main()内的局部内部类,若要访问方法内的局部变量a,则a应当使用final修饰。

    被内部类访问的局部变量会被拷贝一份到内部类中,即Inner中存在一个成员变量,用于记录局部变量a的值。若局部变量不是final的,其取值就可以被修改,而Inner对象中保存的是其原来的值,这就会出现数据不同步的问题。

    Java为了避免数据不同步的问题,做出了内部类只可以访问final的局部变量的限制。

    在java8中,可以不使用final,如果局部变量被内部类访问,那么该局部变量相当于自动使用了final修饰。

     

  • 相关阅读:
    jQuery事件篇---高级事件
    Cookie处理
    JDBC技术
    JSP行为
    JSP九大内置对象
    JSP指令学习
    Oracle数据库学习之存储过程--提高程序执行的效率
    数据库操作之游标
    PL/SQL编程接触
    数据库数据的查询----连接查询
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/11297717.html
Copyright © 2011-2022 走看看