为了账号安全,请及时绑定邮箱和手机立即绑定

关于java的对象的计算问题

关于java的对象的计算问题

掌门飞哥 2017-03-07 19:36:50
public class java1 { static void max (int a,int b){//调用前后i和j的值 if (a>b){ System.out.println(a); b+=100; } else if (a<b){ System.out.println(b); a+=100; //这里的a应该成了110吧 } } public static void main (String [] argv){ int i=10,j=11; System.out.println("i="+i+",j="+j); max (i,j); System.out.println("i="+i+",j="+j); } }答案:i=10,j=1111i=10,j=11我不懂第三行的i为什么是10而不是110呢???
查看完整描述

1 回答

?
慕粉4075985

TA贡献104条经验 获得超33个赞

说明白点,你给它的值,它修改后的结果没有给回你

查看完整回答
1 反对 回复 2017-03-07
?
小谢星

TA贡献3条经验 获得超4个赞

基本数据类型作为方法的参数时,传递的是具体的值,与原来参数已经没有关系了,所以方法内部的修改,不会影响原对象

而如果是引用数据类型,作为参数,传递的是引用的地址,是可以再方法内部进行修改,并影响原对象的

查看完整回答
1 反对 回复 2017-03-07
?
慕粉1737406241

TA贡献1条经验 获得超0个赞

你只是写的大于或者小于,都没有等于,所以值不会变
查看完整回答
反对 回复 2017-03-08
?
qq_随心_57

TA贡献8条经验 获得超3个赞

因为你的max方法没有返回值,a为局部变量,它的值的变动,仅仅影响了自己的方法内的变化,不会对主方法中的i值产生影响。而且a只是一个形参,不会对实参的值有影响的。

查看完整回答
反对 回复 2017-03-07
  • 1 回答
  • 0 关注
  • 1574 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信