关于方法重载(Overloading)的执行顺序问题??
package com.swt;
public class Test1
{
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 static void main(String[] args)
{
Test1 test = new Test1();
int result = test.add(1, 3);
int result2 = test.add(1, 4, 5);
System.out.println(result);
//System.out.println(result2);
}
}
程序执行的结果为 5 和 4。。。
关于这个方法的嵌套使用,我不是很了解,麻烦大虾门帮我解答下吧。
------解决方案--------------------就相当与调用2次add(int a, int b),第一次是int result = test.add(1, 3);最后的结果被你打印出来了,这时第二次是System.out.println(add(a, b));但是System.out.println(add(a, b));先使用了System.out.println语句所以是5,你的4就是System.out.println(result);这里打印的,如果你实在不懂就单步调试,最直观
------解决方案--------------------
Java code
int result = test.add(1, 3); ---> result = 4;
int result2 = test.add(1, 4, 5);
--->System.out.println(add(a, b)); -->打印 5
return a + b + c; --> result = 10
System.out.println(result); -->打印 4
System.out.println(result2); -->打印 10
------解决方案--------------------
楼主应该注意下你程序的入口,从你入口看你的程序是怎么执行的。
另外我觉得楼主是不是吧返回值和控制台打印语句混了呢,返回值是不会在你的控制台打印的,只有你用了打印语句才会去控制台打印的。这样你就可以根据程序走向判断出一个打印的东西及顺序了