gpt4 book ai didi

java - 如何为其他方法存储修改后的变量值?

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:46 24 4
gpt4 key购买 nike

我有两种使用相同变量pikaHP的方法。第一种方法可以很好地减去并打印出 pikaHP 的值,但是当我立即转到下一个方法时,该值已重置为其原始值。

下面是一些代码:

    int pikaHP = 30;

static void fight(int pikaHP, /*(insert other variables here)*/)
{
pikaHP = pikaHP - 5; //outputs 25 fine on the next line
System.out.println("Pikachu's hp is " + pikaHP);
}

static void currentHP(int pikaHP /*(inster other variables here)*/)
{
//This time pikaHP is printed as 30
System.out.println("pikachu's hp is " + pikaHP);
}

我猜测发生这种情况是因为 pikaHPmain 方法中设置为 30,而这两种方法都只是获取了 30 的数量。

如何在 fight() 方法中将 pikaHP 保存为 25(或任何我想要的值),然后将该 25 传递给 currentHP() 方法,以便输出“pikachu's hp is 25”而不是 30?

最佳答案

方法只能在本地更改传递给它的变量的值(例如 pikaHP),因为 Java 是一种按值传递语言。如果您希望更改在方法调用后继续存在,请将变量设为静态,而不是将其传递给这些静态方法。

另一种方法(如果该变量是在主方法中本地声明的,并且您希望保持这种方式)是,每个获取该变量作为参数并希望更改其值的方法都将返回该变量的修改值,并且您的主方法会将新值分配给该变量。

关于java - 如何为其他方法存储修改后的变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com