Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么';t number1和number2必须在这个java代码中声明吗?_Java - Fatal编程技术网

为什么';t number1和number2必须在这个java代码中声明吗?

为什么';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

这段代码是类中的一个小实验,在方法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(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”(“替换”可能意味着传递不正确的引用)。