java中,方法带参数和不带参数有什么区别?下面的代码,还能不能再改成不带返回值的?怎么该?

publicclassMethod01{publicstaticvoidmain(Stringargs[]){intone=addTwo(10,20);System.ou... public class Method01{
public static void main(String args[]){
int one = addTwo(10,20);
System.out.println("addOne的计算结果"+one);
}
public static int addTwo(int x, int y){
int temp = 0;
temp = x+y;
return temp;
}
}
上面这段代码,我把他拆成下面这段代码执行的效果是一样的,

public class Method01{
public static void main(String args[]){
int one = addTwo();
System.out.println("addOne的计算结果"+one);}
public static int addTwo(){
int x =10;
int y =20;
int temp = 0;
temp = x+y;
return temp;}
}
问题:上面的写法和下面的方法有什么区别,或者说有什么优势?我是新手,回答的越详细越好,谢谢。。。
展开
 我来答
cmr1990
2012-03-10 · TA获得超过757个赞
知道答主
回答量:103
采纳率:0%
帮助的人:58.1万
展开全部
带参数的函数(JAVA称方法)可以用参数将数值传递进函数,比如你的第一个函数,当调用addTwo函数的时候,就通过参数将数值,10,20传递进了函数当中进行计算,得出结果,然后返回结果。如果改成你第二种写法,其实这个函数是失效的,因为我们要通过这个函数计算不同的值的和,而没有参数,就不能在调用的时候将值传递进去,这个函数的返回值永远是30。你可以试一下将第一种写法里面的调用改成 int one = addTwo(100,200); 输出的结果将为300,。第二种写法显然做不到。

至于你说的不用返回值,还有一种叫做按引用调用可以作为函数值的出口,写法是函数类型 函数名(& 参数类型 参数名){}比如public void addone(int & a){a += 1;}这样当你调用这个函数的时候,a就会自增加1。如果要具体解释就涉及到形参和实参,你可以自己去百度一下,有什么不明白的再问吧
追问
int one = addTwo(10,20);     这个里面的值是怎么传递的? 我好像有点钻牛角尖了,谢谢你的回答!
追答
方法在声明的时候,参数列表里面的参数称为形参,这个时候系统并没有为其分配内存,当函数调用的时候,就会为其分配内存,然后执行函数里面的代码……这个参数就称之为实参,我也只能解释成这样了……
424301022
2012-03-10
知道答主
回答量:13
采纳率:0%
帮助的人:1.4万
展开全部
这两句没有什么本质的区别,都是调用方法。但是两个分配内存的方法不一样,前者是把参数的内存copy到方法里,而后者是直接调用方法里分配的内存,其实内存大小都是一样。如果参数多了,前者容易出错,而后者就不会,相对来说用后者比较理想些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
btrbt
2012-03-11 · TA获得超过178个赞
知道答主
回答量:205
采纳率:0%
帮助的人:110万
展开全部
第一个和第二个是不一样的,因为既然用了method,那么就需要表达出这个method功能,第二个只能算10+20, 而不能表达出addTwo的功能。。。所以在某种程度上说第二种制式用了method的形式而已。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郑人珲
2012-03-10
知道答主
回答量:5
采纳率:0%
帮助的人:7871
展开全部
当然是带参数的更好了,更加灵活,代码的复用度更高。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式