因为在method1() 中调用了word = method2(word, num+1);输出结果第一行会是2. letters: Happy, Happy, Joy, Joy
倒数第二行是因为:System.out.println("main(): " + method2("Test", 1));

解决方案 »

  1.   

    因为在method1()里面是先调用的method2(),再打印的System.out.println("1. num: " + num);而在method2()里面也有System.out.println("2. letters: " + letters);
    所以,应该先System.out.println("2. letters: " + letters);再System.out.println("1. num: " + num);倒数第二行2. letters: Test还是因为在System.out.println("main(): " + method2("Test", 1));这句语句里调用了method2("Test", 1),所以先打印method2("Test", 1)里面的打印句子。不知楼主听明白没有。
    用调试工具调试一下就全明白了。
      

  2.   

    同意satangf(好好学习,天天向上!) 的的观点
    楼主不妨借鉴一番
      

  3.   

    main()中首先调用的是method1,而method1在打印num之前中又调用了method2这样就先执行method2了,就会先按着method2的方法走,之后再打印num(也就是你说的1. num: 5)倒数第二行就是直接调用method2了
      

  4.   

    在MAIN中调用了method1(),程序便放下后边的,转去执行method1()中的代码了,所以输出就是
    2. letters: Happy, Happy, Joy, Joy;倒数第2行也是因为调用了method2("Test", 1),而method2里边执行System.out.println("2. letters: " + letters);这句,所以就是这样的结果。而且注意,整个过程参数的传递都是按值的。