Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java如何更改静态参数';s值_Java - Fatal编程技术网

Java如何更改静态参数';s值

Java如何更改静态参数';s值,java,Java,我四处搜索了几分钟,没有找到一个与我类似的问题。以防万一,如果这是一个以前被问过的问题,我真的很抱歉,这是无意的 我试图更改作为参数传入的静态变量的值。这是一段代码: public int check(int row, int column, char ch, Color color, int score) { this.row = row; this.column = column; this.ch = ch; this.color = color;

我四处搜索了几分钟,没有找到一个与我类似的问题。以防万一,如果这是一个以前被问过的问题,我真的很抱歉,这是无意的

我试图更改作为参数传入的静态变量的值。这是一段代码:

public int check(int row, int column, char ch, Color color, int score) {

    this.row = row;
    this.column = column;
    this.ch = ch;
    this.color = color;
    this.score = score;
    flag = 0;

    if (something){
        do stuff
        score++;
    }
}
对于int score,传入了以下静态变量:

public static int player1Score;
public static int player2Score;
该方法应该通过事件处理程序调用,它们按下的按钮确定是否将player1Score或player2Score作为参数传递。如果它只是一个作为参数传递的单个变量,那就很容易了,但此时它是两个或更多个变量,除了生成重复的if语句,并将它们分别作为player1Score++和playr2Score++之外,想不出其他方法

这里有35个if语句检查score++的条件,我只是想问一下,是否有一种方法可以改变参数本身的值

两个静态分数变量位于不同的类中

非常感谢您的帮助


谢谢。

正如@isuru89所说,它是通过值传递的

因为您在
check
方法中定义了基元类型
int score
,所以该变量存储在
check
方法的堆栈中。除非您返回此变量,否则其他人不会看到此变量的任何更改


有一篇很好的文章可以参考。

Java类型,如int、long、double等。您可以使用返回类型(
int
)返回修改后的分数值,并通过调用者将其分配给静态变量。我可以建议一个答案,但需要知道这个
检查方法返回了什么。你应该重新考虑你的架构。很可能,您甚至不需要静态变量。为了存储玩家的分数,你们可以使用地图,其中键是玩家编号,值是玩家分数,你们可以存储许多玩家的数据