猿问

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

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;

}

}


飞起
浏览 1354回答 2
2回答

chenjs

     返回的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

chenjs

谢谢^_^
随时随地看视频慕课网APP

相关分类

Java
我要回答