黑马程序员技术交流社区

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

作者: 我来也    时间: 2015-4-11 19:39
标题: 在打印语句中如何打印这3个x变量?
在打印语句中如何打印这3个x变量?

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


作者: sisel    时间: 2015-4-11 19:49
new A().x  new A.B().x   x
作者: wkz_crystal    时间: 2015-4-11 20:00
这个题目自己想办法解决吧?这是测试题目……不难的!不敢公布答案!因为泄题会扣分的!加油!
作者: 我来也    时间: 2015-4-11 20:01
sisel 发表于 2015-4-11 19:49
new A().x  new A.B().x   x

打印的x的值是多少啊
作者: 我来也    时间: 2015-4-11 20:02
发帖+10,评论+1,被评论+1,回复+5,登录+1 ,签到
作者: yearn    时间: 2015-4-11 20:12
创建内部类对象调用func()函数就可以打印了。格式是:A.B b = new A().new B();
                                                                                            b.func();
作者: liurongzhi1991    时间: 2015-4-11 20:23
打印的是局部变量,3,你若是在函数外写打印语句,则输出2,A类中是另外一个变量,B类没关系
作者: bankmycard    时间: 2015-4-11 20:58
顶一个吧先
作者: showdy    时间: 2015-4-11 21:03
本帖最后由 showdy 于 2015-4-11 23:19 编辑

内部类啊,看看
作者: 优质码农    时间: 2015-4-11 21:09
正确答案:System.out.rintln(x+this.x+A.this.x);
作者: liyanghml    时间: 2015-4-11 21:18
这要用到  嵌套内部类。。。毕老师有讲过,楼上有人说 泄题问题:所以 就建议你看看  视频吧
作者: huanghe1103    时间: 2015-4-11 21:28
可以定义B继承A ,打印 x ,this.x, super.x
作者: Fruious    时间: 2015-4-11 21:30
来看看了!
作者: 奔放的龙小胖    时间: 2015-4-11 22:04
你这不就是标准的内部类么?
声明一个内部类对象 外类名.内类名.变量名=new 外类名().内类名();
然后再调用func方法。
可行否

作者: z小怪兽    时间: 2015-4-11 22:47
路过,学习
作者: kayaking    时间: 2015-4-11 23:14
一个标准内部类
作者: 无梦不远行    时间: 2015-4-11 23:19
又长见识了
作者: 上善若水_Wx    时间: 2015-4-11 23:23
发帖+10,评论+1,被评论+1,回复+5,登录+1 ,签到
作者: showdy    时间: 2015-4-11 23:33
  1. class A
  2. {
  3.         int x = 1;
  4.         class B
  5.                 {
  6.                         int x = 2;
  7.                         void func()
  8.                         {
  9.                                 int x = 3;
  10.                                 System.out.println(x+"...."+this.x+">>>>>"+A.this.x );
  11.         }
  12.     }
  13. }
  14. class AnonymousTest12
  15. {       
  16.         public static void main(String[] args)
  17.         {
  18.                 A.B ab= new A().new B();
  19.                 ab.func();
  20.         }
  21. }
复制代码

作者: One_M    时间: 2015-4-11 23:53
内部类~!~!
作者: 帆风顺    时间: 2015-4-11 23:53
这个不是 那个就业班的测试题 ?
作者: 我来也    时间: 2015-4-12 00:42
showdy 发表于 2015-4-11 23:33

恩,不错哦
作者: 我来也    时间: 2015-4-12 00:43
One_M 发表于 2015-4-11 23:53
内部类~!~!

确实,是内部类
作者: 我来也    时间: 2015-4-12 00:45
优质码农 发表于 2015-4-11 21:09
正确答案:System.out.rintln(x+this.x+A.this.x);

你的 输出语句错了System.out.println();
作者: 我来也    时间: 2015-4-12 00:46
奔放的龙小胖 发表于 2015-4-11 22:04
你这不就是标准的内部类么?
声明一个内部类对象 外类名.内类名.变量名=new 外类名().内类名();
然 ...

应该差不多吧
作者: 我来也    时间: 2015-4-12 00:47
wkz_crystal 发表于 2015-4-11 20:00
这个题目自己想办法解决吧?这是测试题目……不难的!不敢公布答案!因为泄题会扣分的!加油! ...

恩,加油
作者: 我来也    时间: 2015-4-12 00:49
yearn 发表于 2015-4-11 20:12
创建内部类对象调用func()函数就可以打印了。格式是:A.B b = new A().new B();
                        ...

应该行吧
作者: 奔放的龙小胖    时间: 2015-4-12 19:34
我来也 发表于 2015-4-12 00:46
应该差不多吧

声明了一个内部类的对象以后,那你不就是可以用一个关键字“this”
作者: 优质码农    时间: 2015-4-12 20:59
我来也 发表于 2015-4-12 00:45
你的 输出语句错了System.out.println();

恩恩,失误
作者: 我来也    时间: 2015-4-13 09:05
帆风顺 发表于 2015-4-11 23:53
这个不是 那个就业班的测试题 ?

是吗?看来你是已经做过了




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