Java中向参数传递变量的魔术

Java中向参数传递变量的魔术,java,string,parameters,Java,String,Parameters,有人能给我解释一下输出结果时是如何形成的吗 输出将是: 约翰和福喜欢吃花生 我了解那个女人。扎兹的名字总是约翰 我不明白最后两个参数是怎么回事。你是怎么形成的 PS:请帮助我了解最后两个参数是如何形成的。 如果有一个更好地理解java编译器工作方式的示意图表示的可能性 当您调用“神秘”方法时,您会给参数: public class experiment3 { private static void mystery(String foo, String bar, String zazz)

有人能给我解释一下输出结果时是如何形成的吗

输出将是:

约翰和福喜欢吃花生

我了解那个女人。扎兹的名字总是约翰

我不明白最后两个参数是怎么回事。你是怎么形成的

PS:请帮助我了解最后两个参数是如何形成的。
如果有一个更好地理解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

你期望发生什么?你期望发生什么?谢谢你的时间,很好的解释!谢谢你的时间,很好的解释!