为什么';t number1和number2必须在这个java代码中声明吗?
这段代码是类中的一个小实验,在方法int add()中没有声明number1和2。有人能告诉我为什么吗为什么';t number1和number2必须在这个java代码中声明吗?,java,Java,这段代码是类中的一个小实验,在方法int add()中没有声明number1和2。有人能告诉我为什么吗 public class htc { public static void main(String[] args) { int n1 = 4; int n2 = 5; int n3 = add(n1, n2); int result = add(n2, add(add(9, add(2, n3)), 3)); System.out.println(re
public class htc {
public static void main(String[] args) {
int n1 = 4;
int n2 = 5;
int n3 = add(n1, n2);
int result = add(n2, add(add(9, add(2, n3)), 3));
System.out.println(result);
}
public static int add(int number1, int number2) {
int sum = number1 + number2;
return sum;
}
}
number1
和number2
都是参数。写入时会声明参数:
(int number1, int number2)
这意味着无论何时调用函数,都会将值作为参数自动传递到这两个变量中
例如,当您编写:add(n1,n2)
时,您告诉它运行该函数,并用n1-in替换number1,用n2-in替换number2
public static int add(int number1, int number2)
这段代码意味着您正在声明number1和number2,因为前面有“int”,尽管它们还没有任何值。
但是,当您从main()调用函数add并从main()开始编译时,将调用此add函数。因此,当您从main()调用该函数时,add函数的参数将使用n2和add中的值进行初始化(add(9,add(2,n3)),3))所以number1和number2现在有一个定义的值。因此代码执行时没有任何错误。希望您现在理解。我可以看到
int number1
和int number
声明为公共静态int add
方法的参数。你的问题是什么?它们被声明,它们被声明为add
的参数变量,这为add
方法提供了本地上下文……好吧,没关系,我不知怎么错过了。实际上,严格来说,“将n1的值复制到number1,n2的值复制到number2”(“替换”可能意味着传递不正确的引用)。