好的,所以在我的cs类中,我们有一个赋值,要求我们返回一个值,然后将其设置为零。我不知道如何在不使用辅助变量(这将破坏要求)的情况下做到这一点,所以我将不胜感激。这是确切的要求。
"有一个use()方法,它返回points字段中包含的值。它还将点字段重置为零。您将不得不考虑此处的操作顺序,以使其正常工作。"
package Game;
import java.util.Random;
public class HealthPotion
{
private int points;
boolean Haspotion;
HealthPotion()
{
Random num1 = new Random();
int num = num1.nextInt(10)+1;
points=num*10;
}
public int Use()
{
return points;
}
public int getPoints()
{
return points;
}
}
答案 0 :(得分:3)
如果没有滥用最后一个块,那是不可能的,即
try {
return points;
} finally {
points = 0;
}
然而,很难相信这会是他们想要的,因为写这样的代码并不是一个好主意。
答案 1 :(得分:0)
包括这样的setter方法。
public void setValue(){
this.points=0;
}
获得值后调用此方法。
答案 2 :(得分:0)
这个怎么样?
public int Use()
{
int tmp = points;
points = 0;
return tmp;
}
它有局限性,特别是在此方法执行时,如果points
可由其他线程更改。但是,如果您在单线程环境中工作,这应该没问题。
答案 3 :(得分:0)
这应该有效
int points = 5;
public void test(){
System.out.println(use() +" " + points);
}
private int use(){
return points - (points = 0);
}
返回5 0