首先要注意的是,当+
对两个操作数使用a时String
,两个操作数之一是a ,表达式的结果是a String
。
System.out.println("Mult:" + test1(4));
您正在调用,PrintStream#println(String)
因为它out
是type的变量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
价值的串联
"N:4"
为此特定的调用。String
然后,将产生的值用作该println(..)
方法的参数,该方法将其输出到程序的标准输出。
然后该方法返回该值8
,因为4 * 2 = 8
。
System.out.println("Mult:" + test1(4));
相当于
System.out.println("Mult:" + 8);
然后String
发生串联,转换
"Mult:" + 8
转化为String
价值
"Mult:8"