Java中向参数传递变量的魔术
有人能给我解释一下输出结果时是如何形成的吗 输出将是: 约翰和福喜欢吃花生 我了解那个女人。扎兹的名字总是约翰 我不明白最后两个参数是怎么回事。你是怎么形成的 PS:请帮助我了解最后两个参数是如何形成的。Java中向参数传递变量的魔术,java,string,parameters,Java,String,Parameters,有人能给我解释一下输出结果时是如何形成的吗 输出将是: 约翰和福喜欢吃花生 我了解那个女人。扎兹的名字总是约翰 我不明白最后两个参数是怎么回事。你是怎么形成的 PS:请帮助我了解最后两个参数是如何形成的。 如果有一个更好地理解java编译器工作方式的示意图表示的可能性 当您调用“神秘”方法时,您会给参数: public class experiment3 { private static void mystery(String foo, String bar, String zazz)
如果有一个更好地理解java编译器工作方式的示意图表示的可能性 当您调用“神秘”方法时,您会给参数:
public class experiment3 {
private static void mystery(String foo, String bar, String zazz) {
System.out.println(zazz + " and " + foo + " like " + bar);
}
public static void main(String[] args) {
String foo = "peanuts";
String bar = "foo";
mystery(bar, foo, "John");
}
}
这些变量的名称与您声明方法的方式无关,只与它们的内容有关,因此,方法接收参数:
bar(="foo"), foo(="peanuts), "John".
当你调用“神秘”方法时,你给参数:
public class experiment3 {
private static void mystery(String foo, String bar, String zazz) {
System.out.println(zazz + " and " + foo + " like " + bar);
}
public static void main(String[] args) {
String foo = "peanuts";
String bar = "foo";
mystery(bar, foo, "John");
}
}
这些变量的名称与您声明方法的方式无关,只与它们的内容有关,因此,方法接收参数:
bar(="foo"), foo(="peanuts), "John".
Java编译器不关心作为方法调用的参数传入的变量的名称,因为它涉及被调用方法的参数名称。只有价值观的位置才重要
foo(="foo"), bar(="peanuts"), zazz(="John")
变量名的混合顺序在这里没有任何作用,只是为了混淆
"foo" "peanuts"
| |
v v
mystery( bar , foo , "John")
| | |
v v v
private static void mystery(String foo, String bar, String zazz)
变成
约翰和福喜欢吃花生
Java编译器不关心作为方法调用的参数传入的变量的名称,因为它涉及被调用方法的参数名称。只有价值观的位置才重要
foo(="foo"), bar(="peanuts"), zazz(="John")
变量名的混合顺序在这里没有任何作用,只是为了混淆
"foo" "peanuts"
| |
v v
mystery( bar , foo , "John")
| | |
v v v
private static void mystery(String foo, String bar, String zazz)
变成
约翰和福喜欢吃花生
我在这段代码中没有看到任何神秘之处:您必须遵循方法签名中参数的顺序以及调用此方法的参数的顺序 如果在两个方向上使用相同的变量foo、bar和zazz的名称遵循相同的顺序;显示器的输出应该是:
zazz + " and " + foo + " like " + bar
但由于顺序已颠倒,因此有必要跟踪每个变量在方法签名中的位置,以了解将返回的值。
因此,在以下签名中:
"john and peanuts like foo".
但在电话中,我们有:
foo = 1, bar = 2 and zazz = 3
zazz=john的价值
从何处显示
bar = 1 and its value = foo
foo = 2 and its value = peanuts
我在这段代码中没有看到任何神秘之处:您必须遵循方法签名中参数的顺序以及调用此方法的参数的顺序 如果在两个方向上使用相同的变量foo、bar和zazz的名称遵循相同的顺序;显示器的输出应该是:
zazz + " and " + foo + " like " + bar
但由于顺序已颠倒,因此有必要跟踪每个变量在方法签名中的位置,以了解将返回的值。
因此,在以下签名中:
"john and peanuts like foo".
但在电话中,我们有:
foo = 1, bar = 2 and zazz = 3
zazz=john的价值
从何处显示
bar = 1 and its value = foo
foo = 2 and its value = peanuts
你期望发生什么?你期望发生什么?谢谢你的时间,很好的解释!谢谢你的时间,很好的解释!