A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李东梁 中级黑马   /  2014-3-24 15:42  /  722 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Outer
  2. {
  3.         private int num = 3;
  4.        
  5.         void method()
  6.         {
  7.                 final int x = 7;//内部类定义在局部中,只能访问被final修饰的局部变量。
  8. //不被final修饰的局部变量生命周期随着方法的释放而释放。
  9.                 class Inner//定义在局部的内部类。
  10.                 {
  11.                         void show()
  12.                         {
  13.                                 System.out.println("x="+x);
  14. //                                System.out.println("num="+num);
  15.                         }
  16.                 }
  17.                 new Inner().show();
  18.         }
  19. }

  20. class InnerDemo3
  21. {
  22.         public static void main(String[] args)
  23.         {
  24. //                new Outer().method();
  25.                 Outer2 out = new Outer2();
  26.                 out.method();
  27.                 System.out.println(out.obj.toString());
  28.         }
  29. }
复制代码

看老毕讲着段几遍了,上面有两行注释的内容,局部内部类只能访问被final修饰的变量。
我想问的是,当局部类访问到该方法时,该方法及时已经被释放,能不能再重新加载?

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

1 个回复

倒序浏览
没搞清楚楼主的问题。。请问你的Outer2类怎么写的?还有obj变量的定义?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马