这是我的班级:
public class T {
public int num = 100;
private int num2 = -1;
//inner class
public static class Inner {
private int num2 = 250;
public void method() {
System.out.println(num2);//calls inner class num
System.out.println(...);//should print class T num
System.out.println(...);//should print class T num2
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何制作第二个和第三个println来打印T类的num和num2?
你不能 - 你的Inner类不是内部类,它是一个静态嵌套类.换句话说,它独立存在而没有引用T的实例.
如果删除声明的static部分内容Inner,则可以:
public class Inner {
private int num2 = 250;
public void method() {
System.out.println(num2);//calls inner class num
System.out.println(num);//should print class T num
System.out.println(T.this.num2);//should print class T num2
}
}
Run Code Online (Sandbox Code Playgroud)