如何在不同的方法上使用变量集?

时间:2016-08-31 21:08:48

标签: java swing

在我的代码中,变量" targetNumber"无法通过其他方法访问。我如何使它成为可能? 在方法" jButton3Action ..."中,我设置了变量。并且在方法" jButton1Action ..."我试着打电话给它,但是它返回了一个错误:

  

无法找到符号   符号:变量targetNumber   location:class ggui

public static int randInt(int min, int max){
    Random rand = new Random();

    int targetNumber = rand.nextInt((max - min) + 1) + min;

    return targetNumber;
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    final int targetNumber = randInt(1, 10000);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:

    String tooHigh = "Too High!";
    String tooLow = "Too Low!";
    String gotIt = "Got it!";
    int guess;
    guess = Integer.parseInt(jTextField1.getText());

    if (!(guess == targetNumber)){
        guess = Integer.parseInt(jTextField1.getText());
        if(guess > targetNumber){
            resultField.setText(String.valueOf(tooHigh));
        }
        else if(guess < targetNumber){
            resultField.setText(String.valueOf(tooLow));
        }

    }
    else{
        resultField.setText(String.valueOf(gotIt));
    }

1 个答案:

答案 0 :(得分:3)

而不是乱用范围,而是使变量成为类的私有字段,因此所有方法都可以访问它。这对所有方法都很方便,并且会删除不必要的代码。像这样使用它:

private int targetNumber;

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {执行此操作:

targetNumber = randInt(1, 10000);

在程序的其余部分中,代码应按预期执行。 另外,不要在randint()targetNumber中调用变量,因为编译器可能会对在return语句中引用哪一个感到困惑。