我在增加实例变量的值时遇到麻烦。我尝试过一种方法,这样对于我购买的每只宠物,它都会增加我已经拥有的宠物的数量。但是,当我打印dogs变量时,即使我加了2,它也显示为0。非常感谢您的帮助。谢谢!
公共类myStuff 静态int狗; 静态int猫;
public static void main(String[] args) {
myStuff.buy(dogs, 2);
System.out.println(dogs);
}
public static void buy(int pet, int howMany) {
pet = pet + howMany;
}
}
答案 0 :(得分:0)
您无法在Java中执行此操作,因为它是pass-by-value
答案 1 :(得分:0)
在Java中,方法参数按值传递(这意味着dogs
的值在第一个Place中传递,但从未被传递)。但是,对象是通过引用来操纵的。因此,如果您想增加宠物的数量,可以使用值为Pet
的类count
public class Pet {
private int count;
public Pet(int count) {
this.count = count;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
如果您随后将Pet
的实例传递给buy
函数,并通过setCount
增加计数,则将保存该值。