我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > 局部内部类是否可以访问非final变量?
总共48087条微博

动态微博

查看: 1341|回复: 1

局部内部类是否可以访问非final变量?

[复制链接]

45

主题

5

听众

117

金钱

三袋弟子

该用户从未签到

跳转到指定楼层
楼主
发表于 2015-04-04 11:28:38 |只看该作者 |倒序浏览
1IT币
局部内部类是否可以访问非final变量?7 g! ]5 Q" E+ e% M! w' L


科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

96

主题

7

听众

406

金钱

四袋长老

该用户从未签到

沙发
发表于 2015-04-04 11:28:55 |只看该作者
答案:不能访问局部的,可以访问成员变量(全局的)。: A- f7 b# a, v; r1 @/ V* }
class Out
( a) a9 w& y4 l- r6 p{
/ g3 V& O- y' }/ |6 Qprivate String name = “out.name”;# P; k8 G! L- D0 \4 p# l8 n
void print()  L# y7 K7 H( @1 W' C7 y+ t+ w
{2 W. u1 V+ E' \- C
final String work = “out.local.work”;//若不是final的则不能被Animal 使用., ^9 i% O8 A) ~& O) |% M% b
int age=10;
  t/ J: k8 m! Nclass Animal) o% O% ?1 w0 ?
//定义一个局部内部类.只能在print()方法中使用.
) O7 N+ U4 x! n6 `9 W//局部类中不能使用外部的非final的局部变量.全局的可以.+ ?& R" C1 V) B! S, o+ i/ F: x2 s% N
{
6 U( j$ I5 d8 `9 t; T. Q% {public void eat()
" R* Q' ~7 `/ ^' m5 t" I{
+ G4 q$ \7 Q) X6 O& X, V" |2 QSystem.out.println(work);//ok' d( R. {# H1 E1 G# Y
//age=20;error not final
$ t) F6 k* E( I+ hSystem.out.println(name);//ok.- k$ A. p) Z3 B' r
}
6 C9 J# h: i' {5 B* B}
+ |" B7 ]6 u' QAnimal local = new Animal();
1 x* Y+ p1 O4 s% N% q, Z) Hlocal.eat();/ o' E" W2 o$ `# \) E) {" Y4 O
}7 T/ [" q) d; {8 n
}
回复

使用道具 举报

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表