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

请问现在我输出的num是多少?为什么?

请问现在我输出的num是多少?为什么?

飞起 2015-09-01 09:36:51
package com.guigu;public class WuReturn {public static void main(String[] args){ int num=10; WuReturn newwu=new WuReturn(); newwu.add(num); System.out.println(num);}public void add(int num){ num=+1;}}
查看完整描述

2 回答

已采纳
?
chenjs

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

     返回的num依旧是10,首先你在类中定义的add函数是没有返回值的,所以你如果要在add函数中修改num的数值,那么你的函数

public void add(int num){     //这一种传参方式,函数实际在内部调用执行时是先声明了一个newnum,然后           num=+1;                            //再newnum=num,在函数内部进行的是newnum+=1(在这里提醒一下,你的                                                  //代码写错了,令num加1,应该是num+=1,而不是num=+1)

}                                             //所以num内存地址存放的数值10是不会被改变的               

就应该定义成

public void add(int & num){   //这种传参方式为引用传参,这个才真正地把num的内存地址也一起给传递进去,

num=+1;                                 //所以函数内部才可以对其进行修改

}

如果不用引用传参,将代码修改为:

package com.guigu;


public class WuReturn {

public static void main(String[] args){

int num=10;

WuReturn newwu=new WuReturn();

num=newwu.add(num);                    //修改处

System.out.println(num);

}

public void add(int num){

num+=1;                                            //修改处

}

}

也可以实现num加1


查看完整回答
反对 回复 2015-09-01
?
chenjs

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

谢谢^_^

查看完整回答
反对 回复 2015-09-01
  • 2 回答
  • 0 关注
  • 1353 浏览

添加回答

举报

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