传递参数值作为变量的值

时间:2013-03-08 01:11:40

标签: java variables parameters

基本上我正在制作一个我需要为角色添加健康的游戏。当玩家击中蜘蛛的命中框时,我希望改变健康状态并重新绘制框架。我觉得我做得对。这是我的代码:

Frame.java

public static int redHealth;
public static int blueHealth;

public static void getBlueHealth(int health) {
    health = redHealth;
}

public static void getRedHealth(int health) {
    health = blueHealth;
}

// Create health labels
public static JLabel redHealthLabel = new JLabel("Health: " + redHealth);
public static JLabel blueHealthLabel = new JLabel("Health: " + blueHealth);

Key.java

if (Frame.spiderObj.intersects(Frame.blueCharacterObj)) {
    System.out.println("hit spider");
    Frame.getBlueHealth(97);
    Frame.frame.repaint();
    System.out.println(Frame.redHealth + "" + Frame.blueHealth);
}

如您所见,我将97作为参数传递给getRedHealth()getBlueHealth()方法,然后将其设置为等于redHealth和{{1 }}。然而,当我运行我的游戏并击中蜘蛛时,它打印出blueHealth但不更新健康状况。

任何帮助???

1 个答案:

答案 0 :(得分:1)

你最大的问题是你试图“通过引用传递”来填充health而不是实际返回它。

应该是:

public static int getBlueHealth() {
    return blueHealth;
}

另外:你可能不需要吸气剂,因为bluehealth已经public static

即使您可以通过引用传递,使用常量调用也会失败。您的通话代码中不清楚您是否想要获取者或者设置者。