黑马程序员技术交流社区
标题:
有个题不会做 有大神可以提供下思路吗!
[打印本页]
作者:
安卓安小虾
时间:
2014-10-11 22:42
标题:
有个题不会做 有大神可以提供下思路吗!
在打印语句中如何打印这3个x变量?
class A {
int x = 1;
class B {
int x = 2;
void func() {
int x = 3;
System.out.println(x);
}
}
}
}
谢谢各位大神了!!
作者:
刘家斌
时间:
2014-10-11 22:53
class A
{
int x=1;
//定义内部类
class B
{
int x=2
void func()
{
int x=3;
/*
方法中有x,所以会打印方法中的x,如果方法中没有,会
去找内部类,内部类中有,会打印内部类中的x,如果内部
类中也没有,才会去找A类的成员变量
*/
System.out.println(x);
//加上this引用,引用类变量,可以打印内部类的成员变量x
System.out.println(this.x)
//加上类名.this的引用,可以打印外部类的成员变量
System.out.println(A.this.x);
}
}
}
复制代码
作者:
不系之舟王
时间:
2014-10-12 16:42
记得这是道基础测试题
作者:
chenglove1201
时间:
2014-10-12 17:42
刘家斌 发表于 2014-10-11 22:53
感谢,我也明白了一些
作者:
英雄传说ER
时间:
2014-10-12 18:48
在方法中引用变量 1 如果这个变量是在方法内定义的 直接引用就可以了
2 如果这个变量是类的成员变量 引用格式 类名.this.变量名 如果这个方法在这个类中 则可以省去本类名
用到你的例子就是 方法func()的局部变量 要打印 直接用x
B类的成员变量要打印 B.this.X 因为func()是B类中定义的方法 B可以省去,不省去也可以
A类的成员变量要打印 A.this.X 因为func()不是A类的方法 所以A不可以省
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2