gpt4 book ai didi

java - 如何使用内部静态类对象访问外部类变量

转载 作者:行者123 更新时间:2023-11-30 02:20:32 27 4
gpt4 key购买 nike

我正在研究java中的内部类。我已经看到,如果内部类是非静态的,那么它可以轻松访问外部类变量。但是如果内部类是静态的,那么我们如何使用静态的类对象来访问外部类的变量呢?

下面是我的代码,其中从内部类访问外部类变量

package org;

public class Outerclass {

String name = "Europe";

public String getname() {

return name;
}

public void setname(String name) {

this.name = name;
System.out.println(this.name);
}

static class innerclass {

void updatename() {
Outerclass o = new Outerclass();
o.setname("USA");
}

}

public static void main(String[] args) {
Outerclass b = new Outerclass();
b.name; // why this error here ? "Syntax error, insert "VariableDeclarators" to complete LocalVariableDeclaration"

innerclass i = new innerclass();
i.updatename();

}

}

最佳答案

您无法访问静态内容内的非静态内容

当我们默认创建静态内部类时,它将创建为外部模板作为内部模板的关联。因此我们可以将两者一起加载,但静态内部类中只能包含静态内容。

现在类的对象之间没有任何联系。但模板之间是有联系的。

以下是您的代码,我做了一些修改,可能会对您有所帮助

public class Demo {

String name = "Europe";

public String getname() {

return name;
}

public void setname(String name) {

this.name = name;
System.out.println(this.name);
}

static class innerclass {

void updatename() {
Demo o = new Demo();
o.setname("USA");
}

}

public static void main(String[] args) {
Demo b = new Demo();
String a = b.name; // why this error here ? "Syntax error, insert "VariableDeclarators" to complete LocalVariableDeclaration"

System.out.println(a);

innerclass i = new innerclass();
i.updatename();

}

}

关于java - 如何使用内部静态类对象访问外部类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46991835/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com