java - 如何更改 Java 中不同类的变量?

标签 java class variables

如何在 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/

相关文章:

java - EJB @Asynchronous - 事务在执行几分钟后不活动

java - Java中的Singleton类如何处理这种情况?

c++ - 使用一个实现其他类方法的类方法以及它自己的类方法

java - 无法在 org.junit.runner 中找到/导入 Runwith 类?

c++ - 类公共(public)函数引用私有(private)数组

javascript - 在包含的前端 js 文件中使用服务器生成的变量

java - 为什么我的 jdbc 数据库函数无法读取正斜杠

java - 用特殊符号分割字符串并将特殊符号包含到第一个子字符串后,如何从字符串中获取子字符串?

php - 连接两个变量以获得一个

jquery - 同时使用2个变量