6.局部内部类访问外边的局部变量时,此变量必须为final类型 

由于技术方面的限制,java的设计者们做出如下语法规定:局部内部类访问外边的局部变量时,此变量必须为final类型,(为什么请参考我的参考目录)否则会报一个错误:Cannot refer to a non-final variable i inside an inner class defined in a different method

例2.6

class ShellMark_to_win {

int x = 100;//x是类变量, 内部类访问时不用加final。
    void test() {
        for (int i = 0; i < 2; i++) {
/*马克-to-win:下面的y和str是局部变量,内部类访问时必须加final  */ 
            final int y=6;   
            final String str="aaa";
            class Core {
                void display() {
                    System.out.println("外部类的x=" + x+y+str);
                }
            }
            Core inner = new Core();
            inner.display();
        }
    //    Core inner = new Core(); //错误找不到Core。
    }
}
public class Test {
    public static void main(String args[]) {
        ShellMark_to_win s = new ShellMark_to_win();
        s.test();
    }
}

更多请见:http://www.mark-to-win.com/tutorial/java_4_LocalInnerClassFinal.html

为什么局部内部类访问外边的局部变量必须为final?相关推荐

  1. 第三次学JAVA再学不好就吃翔(part43)--局部内部类访问局部变量

    学习笔记,仅供参考 面向对象 局部内部类访问局部变量 啥叫局部内部类? 局部内部类是指在方法中定义的内部类. 举个例子(访问局部内部类) 局部内部类: class InnerTest1 {public ...

  2. 局部内部类访问方法中的局部变量为什么加final

    1)从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的 ...

  3. 局部内部类访问它所在方法中的局部变量必须是final

    https://www.cnblogs.com/oldpub-blog/p/9026824.html https://blog.csdn.net/whuslei/article/details/625 ...

  4. 内部类访问局部变量的时候,为什么变量必须加上final修饰

    这里的局部变量就是在类方法中的变量,能访问方法中变量的类当然也是局部内部类了. 我们都知道,局部变量在所处的函数执行完之后就释放了,但是内部类对象如果还有引用指向的话它是还存在的.例如下面的代码: c ...

  5. java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...

    1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的 ...

  6. 内部类详解————局部内部类

    内部类三连击: <内部类详解----匿名内部类> <内部类详解----局部内部类> <内部类详解----静态嵌套类> 定义 在方法或某个作用域内的内部类,称为局部内 ...

  7. java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)

    final关键字: final表示最终的不可变的,在java中可以用来修饰类或方法.局部变量.成员变量. // 1.final关键字修饰类需要放在class关键字前面,表示不可变的类,需要注意,这里表 ...

  8. 局部内部类 java 1614958356

    局部内部类 java 1614958356 关于 定义局部内部类 定义在方法中的类 局部内部类不可以加访问修饰符 局部内部类里面的成员属性可以加访问修饰符 访问外部类的属性 可以直接访问 相当于 访问 ...

  9. java局部内部类_Java 局部内部类、匿名内部类详解

    外部类与内部类 众所周知,每个java文件必须有一个与这个java文件同名的外部类,这个外部类可以是public或default的.而除了这个同名外部类,还可以有与这个同名外部类平级的其他外部类,但它 ...

最新文章

  1. des算法java_Java加密算法笔记--DES算法实现
  2. ueditor集成实例php,Laravel框架集成UEditor编辑器的方法图文与实例详解
  3. centos7 远程连接其他服务器redis
  4. Python-OpenCV 处理图像(二):滤镜和图像运算
  5. ajax.filter json过滤,$.ajax()的dataFilter方法
  6. Goland显示“Cannot resolve symbol XXX“ 进行更新IDE的索引库
  7. mysql text与blog的区别
  8. 规范化流程化提交自己代码到远程gitlab服务器
  9. 取证 c语言实现日志导出_日志与日志不一样:五种不能忽略的日志源
  10. java xml特殊字符转义_Java中将xml文件转化为json遇到特殊字符会报错!
  11. 2017 ACM-ICPC南宁网络赛: I. GSM Base Station Identification(线性变换)
  12. php万能播放器代码,网页视频播放器程序代码(通用代码)
  13. Android视频录制命令screenrecord
  14. 史上z..zui难回答的26个问题(1)
  15. win10下卸载office2010(测试多种方法后,成功实现)
  16. Django项目:LOL学院学员管理系统
  17. 【selection】 学习光标API并实现编辑区插入表情图片的功能
  18. 使用Echarts将Excel数据转换成色彩地图HTML小工具
  19. 排查docker cpu占用过高问题
  20. windows中WinRAR命令行参数

热门文章

  1. 在html中加入文本框,在HTML中的文本框中添加多行
  2. 5G+小程序有着怎样的代理加盟创业前景
  3. 爬虫技术做到哪些很酷很有趣很有用的事情
  4. 陈松松:新注册的视频站帐号要做好这几点,不易封号
  5. 黑白卡蒙特梭利素材感官黑白卡蒙氏素材
  6. pov-ray使用手册_使用POV-Ray的3D图形代码
  7. MFC ListControl控件使用InsertItem()函数插入新的列表项后不能显示列表项名称
  8. SDL 如何显示图片及背景图片
  9. Camera模组成像问题
  10. 【DB笔试面试618】在Oracle中,“OR扩展”可以有查询转换吗?