黑马程序员技术交流社区

标题: 以下代码能否编译通过 [打印本页]

作者: 嘎路的米    时间: 2015-6-11 19:43
标题: 以下代码能否编译通过
先别急着运行,先猜猜看代码是否正确,是否能够编译通过。如果编译通过,运行结果又是什么
  1. class Wai{
  2.         static final int y = 6;
  3.        
  4.         class Nei{
  5.                
  6.                 static final int y = 3;
  7.                 void show(){
  8.                         System.out.println(y);
  9.                 }
  10.         }
  11. }

  12. public class Demo {
  13.         public static void main(String[] args) {
  14.                 new Wai().new Nei().show();
  15.         }
  16. }
复制代码

作者: shuaiqi_P_D    时间: 2015-6-11 20:46
可以的。匿名外部类创建匿名内部类,调用内部类的方法。JDK8 以后可以不用加 final
作者: 嘎路的米    时间: 2015-6-11 21:15
shuaiqi_P_D 发表于 2015-6-11 20:46
可以的。匿名外部类创建匿名内部类,调用内部类的方法。JDK8 以后可以不用加 final ...

内部类中的y不加final会编译错误。内部类中如果存在静态的成员,那么内部类必须也要是静态的。
静态常量除外
作者: java8023    时间: 2015-6-11 21:18
可以啊,楼上说的很好啊
作者: 仲德明    时间: 2015-6-11 21:47
应该可以吧
作者: zd12345    时间: 2015-6-11 22:31
编译失败吧。内部类中如果包含静态成员,则内部类也必须声明为静态。
作者: Monster    时间: 2015-6-11 22:48
可以a,结果是3,就把Nei当作写在Wai外面的,但是只能功Wai使用




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