如何在 Java 中更改来自不同类的变量?
我正在尝试更改另一个类中的变量,然后在第一个类中使用它。
我在类 First 中创建了一个变量,并将其赋值为 1。然后我尝试在类 Second 中将同一个变量的值更改为 2,但是当我在类 First 中使用它时它又变回了 1。
我是 Java 的新手,还不是很了解,所以如果您能尽量让答案保持简单,那就太好了:)
头等舱:
public class First {
public static void main(String args[]){
int var = 1; //Variable i'm trying to change from class "Second"
Second Second = new Second();
System.out.println(var); //Prints out 1
Second.test(var);
System.out.println(var); // Prints out 1 again, even though I changed it
}
}
第二类:
public class Second {
void test(int var){
/*
*
* I try to change var to 2, and it works in this class
* but when it doesn't change in the class "First"
*
*/
var = 2;
System.out.println(var); //Prints out 2
}
}
输出结果如下:
1
2
1
我想得到什么:
1
2
2
我试图找到这个问题的答案,但我能找到的所有答案对我来说都没有任何意义,因为我对 Java 和编程还很陌生。
最佳答案
问题是
Second.test(var);
这不是错误。它只是没有按照您的想法去做。
传递给函数的基元(int
称为基元...它不是对象)可能会在该函数中更改,但在副本中。函数一完成,原始值就相同,因为它从未更改为开头。
你想要的是
int test(int var){
var = 2;
System.out.println(var); //Prints out 2
return var;
}
然后代替
Second.test(var);
使用
var = Second.test(var);
参数其实一点意义都没有。相当于
var = Second.test();
...
int test(){
int var = 2;
System.out.println(var); //Prints out 2
return var;
}
希望对您有所帮助。祝你好运,欢迎使用 Java,欢迎使用 stackoverflow!
关于java - 如何更改 Java 中不同类的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21668759/