从内部类中调用外部类的成员

Sam*_*Sam 0 java

这是我的班级:

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类的numnum2

ass*_*ias 7

你不能 - 你的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)