黑马程序员技术交流社区
标题:
内部类问题
[打印本页]
作者:
lfs454766767
时间:
2014-8-24 15:05
标题:
内部类问题
本帖最后由 lfs454766767 于 2014-8-26 08:43 编辑
class OuterX {
int x = 10;
void method() {
final int x = 100;
class Inner {
int x = 1000;
void method() {
int x =10000;
System.out.println(x);
System.out.println(this.x);
System.out.println(OuterX.this.x);
}
}
new Inner().method();
}
}
public class O{
public static void main(String[] args) {
OuterX x = new OuterX();
x.method();
}
}
复制代码
怎么在内部类中的方法内访问 final的那个 x??
作者:
胥亮
时间:
2014-8-24 15:12
this.x就是
作者:
lfs454766767
时间:
2014-8-25 09:17
胥亮 发表于 2014-8-24 15:12
this.x就是
this.x调用的是1000的那个啊
作者:
zuochbd
时间:
2014-8-25 09:25
只能改名字.int x = 3; { int x = 4; }你这种, 你想在块内都能访问两个x是无法做到的.
作者:
abc83983682
时间:
2014-8-25 09:31
编译过没?
作者:
坤儿
时间:
2014-8-25 12:27
abc83983682 发表于 2014-8-25 09:31
编译过没?
我也觉得只能改名字: Inner中的X和 method中的x重名:根据作用域原理 Inner中的x会会覆盖method中的x
但Outer类中的x可以根据Outer.this.x来与Inner中的区别
作者:
viliv715
时间:
2014-8-25 12:44
OuterX.this.x
加上外部类的名字
作者:
faith
时间:
2014-8-25 15:49
要把methood这个方法名带入
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2