如何从m2()?访问x = 15值 我正在访问程序注释中给出的以下值。
class A {
int x = 10;
void m1(){
int x = 15; //How can we access x =15 ?
class B{
int x =20;
void m2(){
int x = 25;
System.out.println(x); //for x = 25
System.out.println(this.x); //for x = 20
System.out.println(A.this.x); //for x = 10
System.out.println();
}
}
}
}
答案 0 :(得分:0)
B
是A
内的内部类。因此,当您想要引用外部类时,使用A.this
,您希望使用外部类中的m1
,因此请使用A.this.m1()
答案 1 :(得分:0)
实际上,您无法访问x
中定义的m1()
。要修复它,您可以更改变量名称:void m1() { int a = 15; ...}
,或者更好地为所有变量使用不同的名称,因为可读性会高得多(初看起来,开发人员不会犹豫什么变量使用在每个地方):
public class A {
private int a = 10;
public void m1() {
int m = 15;
class B {
private int b = 20;
void m2() {
int x = 25;
System.out.println(x); // x = 25
System.out.println(a); // a = 10
System.out.println(b); // b = 20
System.out.println(m); // m = 15
}
}
}
}