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

标签 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);
    }
}

输出将是:

lol
helloworld

有没有办法让内部类能够修改外部类的变量? 感谢您提前提供的所有帮助。

最佳答案

因为变量 stringstatic,您现在可以从该变量定义的类中的任何类访问它,即 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);
    }
}

希望这对您有所帮助。

关于Java - 使内部类能够修改外部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27682627/

相关文章:

java - 使用用户输入更改变量

java - 在非 Activity java 类中使用 Android 的 Fused Location 提供程序,并在主 Activity 类中获取经度和纬度

python - 在 Python 中使用对象作为列表索引

java - 访问内部类中字段的推荐/正确方法是什么?

android - 内部类的返回值

java - 静态嵌套类可以完全访问私有(private)外部类成员吗?

java - 如何将 SharedPreferences 文件中的文本正确 append 到 TextView 而不是覆盖它?

java - 为什么我的 main 方法中的 shutdownhook 没有被调用?

python - 我应该将我的游戏放在 pygame 类中吗?

Scala抽象类,self做什么?