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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾浩田 高级黑马   /  2014-10-18 16:48  /  777 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public void Function(){
  2.                 final int i = 0;
  3.                 //方法中的内部类叫做局部内部类
  4.                 class Inner{
  5.                         public void print(){
  6.                                 System.out.println(i+"局部内部类");//方法内的局部内部类只能访问方法中的final局部变量
  7.                         }
  8.                 }
  9.                 Inner in = new Inner();
  10.                 in.print();
复制代码


评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 淡定

查看全部评分

5 个回复

倒序浏览
只有成员位置上才能用static修饰符
回复 使用道具 举报
生命周期不同步的问题,方法运行结束后静态内部类还存在,它万一去调用了属于这个方法的数据怎么办
回复 使用道具 举报
戏言丶 发表于 2014-10-18 16:58
只有成员位置上才能用static修饰符

精辟,你的一句话解决内部类和静态成员相关所有问题,多谢
回复 使用道具 举报
DreamSeeker 发表于 2014-10-18 16:58
生命周期不同步的问题,方法运行结束后静态内部类还存在,它万一去调用了属于这个方法的数据怎么办 ...

所以为了安全起见,java工程师把局部内部类的生命周期(通过禁止用static修饰局部内部类的方式)强制设为和方法同步?是吗?
回复 使用道具 举报
DreamSeeker 发表于 2014-10-18 16:58
生命周期不同步的问题,方法运行结束后静态内部类还存在,它万一去调用了属于这个方法的数据怎么办 ...

嗯,学到了。。。哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马