public class ParamTest{
public int add(int a ,int b)
{
return a + b;
} public int add(int a, int b, int c)
{
System.out.println(add(a, b)); return a + b + c;
}
public int add(int a, int b, int c, int d)
{
System.out.println(add(a,b,c));
return a+b+c+d;
} public static void main(String[] args)
{
ParamTest test = new ParamTest(); int result = test.add(1, 0);
int result2 = test.add(1, 2, 4, 3); System.out.println(result);
System.out.println(result2);

}}
输出的结果是:
3
7
1
10我非常不解,为什么是这样一个顺序输出

解决方案 »

  1.   

    public class ParamTest{
    public int add(int a ,int b)
    {
    return a + b;
    }public int add(int a, int b, int c)
    {
    System.out.println(add(a, b));
    return a + b + c;
    }
    public int add(int a, int b, int c, int d)
    {
    System.out.println(add(a,b,c));return a+b+c+d;
    }
     
    看看红色字体部分
      

  2.   

    不好意思 看错了
    int result = test.add(1, 0);
    没执行打印操作
    int result2 = test.add(1, 2, 4, 3);
    执行了楼上红色的操作 打印了3.7
    然后是result 和result2的 1 10 
      

  3.   

    debug一下单步执行,顺序就很清晰了
      

  4.   

    当调用int result2 = test.add(1, 2, 4, 3);
    已经执行了两次打印,然后再执行System.out.println(result),最后在执行打印result2
      

  5.   

    一步一步的回答你的问题,首先:
    result=1+0=1;
    result2=10;
    然后你看的见的答应顺序为:
    System.out.println(add(a, b));   //3
    System.out.println(add(a,b,c));  //7
    System.out.println(result);      //1
    System.out.println(result2);     //10
    最后就是:你懂得~
      

  6.   

    确实如此,不过....他应该还不会debug 吧。