Java - 使内部类能够修改外部类

Sal*_*ler 5 java class inner-classes

假设我有两个类:

public class OuterClass {
    String string = "helloworld";

    public class InnerClass {

        public void main(String[] args) {
            string = "lol";
            System.out.println(string);
        }
    }

    public void changeString() {
        InnerClass c = new InnerClass();
        c.changeString();
        System.out.println(string);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出将是:

lol
helloworld
Run Code Online (Sandbox Code Playgroud)

有没有办法让内部类能够修改外部类的变量?在此先感谢您的所有帮助.

Dan*_*wis 3

因为变量字符串静态的,所以您现在可以从类中的任何类访问它,该变量是在InnerClass中定义的,因此您可以从InnerClassOuterClass更改变量的值。所以代码将是:

public class OuterClass {
    public static String string = "helloworld";

    public class InnerClass {
        string = "lol";
    }

    public static void main(String[] args) {
        System.out.println(string);
    }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。