为什么我们需要通过方法参数传递局部变量?为什么我们不能在方法中声明它们?

时间:2014-12-10 02:52:30

标签: java methods parameters

public String getAnswer(int number) {
        if(number >= 1 && number <= answers.length) {
            return answers[number-1];
        } else {
            return null;
        }
    }

为什么我们需要通过方法参数传递局部变量?为什么我们不能在方法中声明它们?请看上面给出的例子。我们可以看到该方法有一个int参数,它用于该方法。为什么不能在代码中声明局部变量?

1 个答案:

答案 0 :(得分:0)

当然可以将number声明为本地参数(不将其作为参数传递)。像,

public String getAnswer() {
    int number = 2; // <-- now it's 2.
    if(number >= 1 && number <= answers.length) {
        return answers[number-1];
    } else {
        return null;
    }
}

然后调用它,

String answer = getAnswer(); // <-- can't pass an argument.

您可能还有field个号码,

private int number;
public String getAnswer() {
    if(number >= 1 && number <= answers.length) {
        return answers[number-1];
    } else {
        return null;
    }
}

如果在构造函数中设置number,则可以在getAnswer中使用它而不传递它或使其成为方法局部变量(相反,它是本地类)。