Java如何更改静态参数的值

时间:2018-12-09 01:35:31

标签: 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;
    this.score = score;
    flag = 0;

    if (something){
        do stuff
        score++;
    }
}

并且为 int得分 传递了这些静态变量:

public static int player1Score;
public static int player2Score;

应该通过事件处理程序调用该方法,并且他们按下的按钮确定将player1Score还是player2Score作为参数传递。如果这只是一个作为参数传递的变量,那会很容易,但是此时它是两个或多个,除了复制重复的if语句并将它们分别作为player1Score ++和playr2Score ++。

大约有35条if语句检查条件以执行score ++,我只是想问一下是否有一种方法可以更改参数本身的值。

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

我们将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

正如@ isuru89所说,它是按值传递的。

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

有一篇不错的文章java memory model,您可以参考。