黑马程序员技术交流社区

标题: 在打印语句中如何打印这3个x变量? [打印本页]

作者: 艾提儿    时间: 2014-8-18 23:11
标题: 在打印语句中如何打印这3个x变量?

class A {
int x = 1;
class B {
int x = 2;
void func() {
int x = 3;
System.out.println( ? );
        }
    }
}


作者: 依然超级赛亚人    时间: 2014-8-19 08:06
  1. class  InnerTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //创建内部类B的对象
  6.                 A.B ab = new A().new B();
  7.                 //调用内部类B的方法输出结果
  8.                 ab.func();
  9.                
  10.         }
  11. }
  12. class A {
  13.         int x = 1;
  14.         class B {
  15.                 int x = 2;
  16.                 void func() {
  17.                         int x = 3;
  18.                         System.out.println("内部类B的局部变量x="+x+"\n内部类B的成员变量x="+this.x+"\n外部类A的成员变量x="+A.this.x);
  19.         }
  20.     }
  21. }
复制代码



作者: java_dream    时间: 2014-8-19 22:47
将程序改为如下,可以打印这3个变量:
class A {
        int x = 1;

        class B {
                int x = 2;

                void func() {
        int x = 3;
        System.out.println("A的成员变量:"+A.this.x+"--B的成员变量:"+this.x+"--B的局部变量:"+x);
        }
        }
       
        public void test(){
                B b = new B();
                b.func();
        }
       
        public static void main(String[] args){
                A a = new A();
                a.test();
        }
}




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