我创建了两个名为 clz1(main) 和 clz2 的类。
clz1:
public class clz1 {
public static void main(String[]args){
clz2 clz2object=new clz2();
clz2object.display();
}
...
}
clz2:
import java.util.Scanner;
public class clz2 {
input=new Scanner(System.in);
public String print1(){
System.out.print("What is your name:");
String a=input.next();
return a;
}
public String print2(){
System.out.print("What is your girlfriend's name:");
String b=input.next();
return b;
}
public void display(){
System.out.println("Your name is "+print1()+" & your girlfriend's name is "+print2());
}
}
输出是这样的:
What is your name:aaa
What is your girlfriend's name:www
Your name is aaa & your girlfriend's name is www
这怎么可能?我没有调用 print1()
和 print2()
... 首先应该打印 "your name is"和 print1() 。 ...然后 “你女朋友的名字是”和 print2() ...不是吗?
最佳答案
System.out.println("Your name is "+print1()+" & your girlfriend's name is "+print2());
您确实调用了 print1() 和 print2()。 Java 首先处理括号中的代码,然后打印它。 它非常像:
System.out.println(1+1);
它先处理'1+1',然后再打印。
关于java - 为什么当方法的返回作为参数传递给其他方法时首先调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20112262/