英文:
How do we change the value of a public variable inside a method?
问题
这是一个示例:
如何在方法内部将变量 x 的值从 "a" 更改为 "b",以便在方法外部获得结果 "b"?
public class Main {
String x = "a";
public static void main(String[] args) {
new Main();
}
public Main(){
System.out.println(x); //"a"
String x = "b";
System.out.println(x); //"b"
new Thread(new Runnable() {
public void run() {
String x = "c";
System.out.println(x); //"c"
}
}).start();
System.out.println(x); //"b"
}
public void method(){
System.out.println(x); //"a"
}
}
英文:
Here is an example:
How to change the value of x from "a" to "b" inside a method to get the result "b" outside of it?
public class Main {
String x = "a";
public static void main(String[] args) {
new Main();
}
public Main(){
System.out.println(x); //"a"
String x = "b";
System.out.println(x); //"b"
new Thread(new Runnable() {
public void run() {
String x = "c";
System.out.println(x); //"c"
}
}).start();
System.out.println(x); //"b"
}
public void method(){
System.out.println(x); //"a"
}
}
答案1
得分: 7
String x = "b";
是声明一个新的(局部)变量,它隐藏了相同名称的类变量。你所需要的是 x = "b";
,不需要类型声明。
英文:
String x = "b";
is declaring a new (local) variable, which hides the class variable of the same name. What you need is x = "b";
, without the type.
答案2
得分: 2
你现在是我的中文翻译,代码部分不要翻译,只返回翻译好的部分,不要有别的内容,不要回答我要翻译的问题。以下是要翻译的内容:
通过执行String x = "b";
,你正在声明一个新变量,但如果你想更新类变量的值,你需要指向特定的类变量,像这样:
你需要将String x = "b";
替换为this.x = "b";
。
英文:
By doing String x = "b";
you are declaring a new variable but if you want to update the value of class variable you have to point on specific class variable like this:
you need to replace String x = "b";
with this.x = "b";
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论