关于内部类 定义在方法中的内部类,要访问方法中定义的本地变量或方法参数时,为什么这些变量要声名为final的呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为在方法中,定义的变量相当于局部变量.用FINAL定义的局部变量相当于一个常量,它的生命周期超出方法运行的生命周期. 内部类可以访问其所在方法的局部变量,但不能修改.因为内部类在使用的是那些变量的副本所以为了避免你错误地以为修改了那些变量,就强制你必须用final来修饰变量,不让你修改 回复人:feifniao(飞飞鸟) ( 一级(初级)) 信誉:100 2006-11-10 18:30:31 得分:0? 因为在方法中,定义的变量相当于局部变量.用FINAL定义的局部变量相当于一个常量,它的生命周期超出方法运行的生命周期.说的有道理,因为方法里定义的变量其生命同期会随着方法的结束而结束,内部类还可以再次利用,那能也就是说它的生活周期并不随方法结束而结束,当然不可以访问普通的局总变量了,用final定义的变量是一相不可变化的变量(一个常量),生命周期就不随方法的结束而结束了~~ 在一个方法内定义的局部内部类的作用域也仅限于该方法内,出了该方法就不能再使用该类了lingwen20错了 哈哈,这个问题,在 thinking in java 中明确说明,我昨天刚看到。 呵呵我再补充补充吧~~“方法定义的一个变量”(其实你的例子中是“形参”,但一样啦)是所谓的“局部变量”,当这个方法结束的时候,这个变量也就不存在了。而匿名类只是在这个方法的语句体中定义,并不一定在当时执行,虽然从语法上它可以访问到外面定义的那个变量,但如果真执行到那句的时候,那个变量不存在了,怎么办呢?所以,办法就是,在匿名类的创建之初,就让那个被访问的变量“凝固”下来,这就是 final 的作用啦,相当于把那个“变量”理解为“常量”。如果访问的是外部类的“实例变量”,当然也就没有这个限制了。 关于网络流量的问题 SERVLET在数据库中处理的结果,怎样在传给JSP? JWindow是否支持键盘事件? 帮忙看一下这个快速排序的程序!!求救!! 问一个郁闷的问题! 为母亲节散分 如何算的当前鼠标下的JTable的cell? 求救:算法问题 关于JNI的问题?(急!!!) 请教大家,java里的this用法,最好有例子给我! 有java script高手进来看看阿!(神奇的代码) 打包jar问题~~急~
用FINAL定义的局部变量相当于一个常量,它的生命周期超出方法运行的生命周期.
所以为了避免你错误地以为修改了那些变量,就强制你必须用final来修饰变量,不让你修改
?
因为在方法中,定义的变量相当于局部变量.
用FINAL定义的局部变量相当于一个常量,它的生命周期超出方法运行的生命周期.说的有道理,因为方法里定义的变量其生命同期会随着方法的结束而结束,内部类还可以再次利用,那能也就是说它的生活周期并不随方法结束而结束,当然不可以访问普通的局总变量了,用final定义的变量是一相不可变化的变量(一个常量),生命周期就不随方法的结束而结束了~~
lingwen20错了