在我的代码中,变量" 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));
}
答案 0 :(得分:3)
而不是乱用范围,而是使变量成为类的私有字段,因此所有方法都可以访问它。这对所有方法都很方便,并且会删除不必要的代码。像这样使用它:
private int targetNumber;
在private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
执行此操作:
targetNumber = randInt(1, 10000);
在程序的其余部分中,代码应按预期执行。
另外,不要在randint()
:targetNumber
中调用变量,因为编译器可能会对在return语句中引用哪一个感到困惑。