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