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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kkopopo 中级黑马   /  2014-2-12 22:39  /  1547 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class TD{
  2.     int y=6;
  3.     class Inner{
  4.         static final int y=3;  
  5.         void show(){
  6.             System.out.println(y);//此处为啥编译通过?
  7.         }
  8.     }
  9. }
  10. class Test{
  11.     public static void main(String[] args){
  12.         TD.Inner ti=new TD().new Inner();
  13.         ti.show();
  14.     }
  15. }
复制代码
  这是原本是毕老师练习题的,结果我在静态变量加了final 编译通过了 ! 那问题来了 这个内部类不是在局部地方和final无关的? 这个地方考点应该为非静态无法引用静态问题啊!求大大们解答!

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 淡定

查看全部评分

4 个回复

倒序浏览
找到了答案!给出网址http://hi.baidu.com/victorlin23/item/0d54b605a32a80ce90571896?qq-pf-to=pcqq.group

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1 赞一个!

查看全部评分

回复 使用道具 举报
我也想问这个问题,难道加了final以后静态就不静态了?还是加载顺序变了?能给我解释下么?
回复 使用道具 举报
网址里的内容还是没看出这个问题的答案啊
回复 使用道具 举报
非静态可以调用静态,相反,静态方法不可以调用非静态成员或者方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马