我有一个考试示例,询问我是否可以访问包含值1的x变量?解决方案就是我可以,但我对这究竟是什么感兴趣?
class A {
int x = 1; //this is what I need access to.
class B {
int x = 2;
void func(int x) {...}
}
}
答案 0 :(得分:2)
class A {
int x = 1;
class B {
int x = 2;
void func(int x) {
System.out.println(A.this.x);
}
}
}
使用示例:
public class Main {
public static void main(String[] args) {
A a = new A();
A.B b = a.new B();
b.func(0); // Out is 1
}
}
答案 1 :(得分:1)
要访问父实例,请使用此关键字,如ParentClassName.this
子类不能是静态的
答案 2 :(得分:1)
是的,您可以访问值为1的变量x。
这里A是你的外部类,B是非静态内部类。
要访问外部A类的变量x,您可以执行类似这样的操作
class B {
int x = 2;
void func(int x) {
System.out.print(A.this.x +" and "+x);
}
}