黑马程序员技术交流社区

标题: 为何局部内部类不能声明为静态 [打印本页]

作者: 贾浩田    时间: 2014-10-18 16:48
标题: 为何局部内部类不能声明为静态
  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();
复制代码



作者: 戏言丶    时间: 2014-10-18 16:58
只有成员位置上才能用static修饰符
作者: DreamSeeker    时间: 2014-10-18 16:58
生命周期不同步的问题,方法运行结束后静态内部类还存在,它万一去调用了属于这个方法的数据怎么办
作者: 贾浩田    时间: 2014-10-18 17:15
戏言丶 发表于 2014-10-18 16:58
只有成员位置上才能用static修饰符

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

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

嗯,学到了。。。哈哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2