黑马程序员技术交流社区

标题: 匿名内部类的小问题 [打印本页]

作者: 王亚男    时间: 2011-12-22 17:12
标题: 匿名内部类的小问题
本帖最后由 qwert 于 2011-12-23 18:25 编辑

各位前辈,我在看内部类的时候看到这里有个小小的疑问,就是下面这段代码中在不注释掉值为11和12的x的前提下,怎么访问到值为10的常量?
  1. abstract class AbsDemo
  2. {
  3.         abstract void show();
  4. }
  5. class Outer
  6. {
  7.         private int x=9;
  8.                
  9.         public void method()
  10.         {
  11.                   final int x = 10 ; //就是想访问这个x

  12.                   new AbsDemo()
  13.                   {
  14.                 int x = 11;
  15.                 void show()
  16.                 {
  17.                           int x = 12;
  18.                           System.out.println("x1="+x);
  19.                           System.out.println("x2="+this.x);
  20.                           System.out.println("x3="  );//就是想知道在不注释掉12和11这俩x的前提下,这写什么是能输出身为常量的那个x?
  21.                           System.out.println("x4="+Outer.this.x);
  22.                     }
  23.                 }.show();
  24.         }
  25. }

  26. class InnerClassDemo4
  27. {
  28.         public static void main(String[] args)
  29.         {
  30.                 new Outer().method();
  31.         }
  32. }
复制代码

作者: 马德强    时间: 2011-12-22 19:05
这种情况是实现不了的,
解决方案:1,改参数名
          2,传参
作者: 王亚男    时间: 2011-12-22 19:11
马德强 发表于 2011-12-22 19:05
这种情况是实现不了的,
解决方案:1,改参数名
          2,传参

谢谢前辈,我也是想的这两种方法,只是想可能还有不知道的地方。
谢谢!




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