如何使用来自另一个类的方法调用从另一个类操作变量?

时间:2016-05-03 21:59:15

标签: java class methods

public class Main{
.
.
.
Class class = new Class();
class.method(class.variableFromAnotherClass);
sysout(class.variableFromAnotherClass)
}

public class Class{
Int variableFromAnotherClass=0;

method(int var){
    var=1;
    }
}

输出:

0

我正在处理类似于上述情况的情况,除了我的版本" Class"中有更多变量。我的问题是" Class"对传递的变量没有任何作用。为什么会这样?是因为传递的变量已经属于该类吗?有关如何解决此问题的建议?

3 个答案:

答案 0 :(得分:1)

您遇到的问题与Java通过引用传递变量有关,而不是 value 。将variableFromAnotherClass传递到class.method(int var)时,int var变量是从variableFromAnotherClass的副本创建的。因此,当调用var=1时,它会更新variableFromAnotherClass的副本,而不是variableFromAnotherClass本身的副本。

如果您希望能够从variableFromAnotherClass更改Main,则可以撰写class.variableFromAnotherClass=1;而不是致电method

另一种更专业的更新变量的方法是使用getter和setter:

public class Class {

    int variableFromAnotherClass;

    public void getVar() {
        return variableFromAnotherClass;
    }

    public int setVar(int var) {
        this.variableFromAnotherClass = var;
    }

}

答案 1 :(得分:0)

请同时使方法和变量静态

public class Class{
static Int variableFromAnotherClass=0;

static method(int var){
    var=1;
    }
}

答案 2 :(得分:0)

尝试使用java getter和setter,并将另一个类的实例变量设为private,这将添加封装。