首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于方法重载(Overloading)的执行顺序有关问题?

2012-08-01 
关于方法重载(Overloading)的执行顺序问题??package com.swtpublic class Test1{public int add(int a, i

关于方法重载(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 = 10System.out.println(result); -->打印 4System.out.println(result2); -->打印 10
[解决办法]
楼主应该注意下你程序的入口,从你入口看你的程序是怎么执行的。
另外我觉得楼主是不是吧返回值和控制台打印语句混了呢,返回值是不会在你的控制台打印的,只有你用了打印语句才会去控制台打印的。这样你就可以根据程序走向判断出一个打印的东西及顺序了

热点排行