package test;
class Outer {
private int x = 1;
public class Inner {
int x = 2;
void function() {
int x = 3;
System.out.println("x = " + x);
}
}
}
public class InnerClassDemo {
public static void main(String[] args) {
Outer.Inner a = new Outer().new Inner();
a.function(); //x = 3;
}
}
内部类访问外部类的变量-1
package test;
class Outer {
private int x = 1;
public class Inner {
int x = 2;
void function() {
System.out.println("x = " + x); //x = 2
System.out.println("x = " + Outer.this.x); //x = 1
System.out.println("x = " + Inner.this.x); //x = 2
}
}
}
public class InnerClassDemo {
public static void main(String[] args) {
Outer.Inner a = new Outer().new Inner();
a.function(); //x = 3;
}
}
内部类访问外部类的变量-2
package test;
class Outer {
private int x = 1;
public class Inner {
void function() {
System.out.println("x = " + x); //x = 1
System.out.println("x = " + Outer.this.x); //x = 1
}
}
}
public class InnerClassDemo {
public static void main(String[] args) {
Outer.Inner a = new Outer().new Inner();
a.function(); //x = 3;
}
}