首先要注意的是,当您使用+
有两个操作数,其中两个操作数之一是String
,表达式的结果是String
.
因此,在下面的方法调用表达式中
System.out.println("Mult:" + test1(4));
你正在调用PrintStream#println(String) since out
是一个类型变量PrintStream
。注意该方法如何接受单个String
争论。因此,String
必须从String
的串联
"Mult:" + test1(4)
为了实现这一点,test1(4)
方法必须被执行。
public static int test1(int n){
System.out.println("N:" + n);
return n*2;
}
这个方法又使用了PrintStream#println(String)
但随着争论
"N:" + n
这是另一个String
串联产生String
value
"N:4"
对于这个特定的调用。所生产的String
然后将值用作参数println(..)
将其输出到程序的标准输出的方法。
然后该方法返回值8
, since 4 * 2 = 8
.
该返回值是调用的值test1(4)
方法。所以
System.out.println("Mult:" + test1(4));
相当于
System.out.println("Mult:" + 8);
Then String
发生串联,变换
"Mult:" + 8
进入String
value
"Mult:8"
That String
然后用作单个参数println(..)
将其输出到程序的标准输出的方法。