请看下以下代码。
public class Test{
int x=4;
int m=1;
public void add(int m){
System.out.println(m);
m=m+2;
System.out.println(m);
}
public static void main(String[] args){
Test obj=new Test();
obj.add(obj.x);
System.out.println(obj.x);
}
}输出结果为
4
6
4我问一下,结果中 第一个4 怎么来的? 不明白
public class Test{
int x=4;
int m=1;
public void add(int m){
System.out.println(m);
m=m+2;
System.out.println(m);
}
public static void main(String[] args){
Test obj=new Test();
obj.add(obj.x);
System.out.println(obj.x);
}
}输出结果为
4
6
4我问一下,结果中 第一个4 怎么来的? 不明白
所以add方法中的第一个
System.out.println(m);
就会打印出4
值传递,不能改变参数值
引用传递可以改变参数值LZ可以把int改成Integer类型再运行看看。
int x=4; //2
int m=1; //3
public void add(int m){ //4 --第二步m=4,带入
System.out.println(m); //5 --第三步 输出值 4
m=m+2; //6 --第四步 m+2 = 4+2=6
System.out.println(m); //7 --第五步 输出6
} //8
public static void main(String[] args){ //9
Test obj=new Test(); //10
obj.add(obj.x); //11--第一步 第二行中 x=4,带入obj.add(4)
System.out.println(obj.x); //12 第六步 输出x,x=4,所以输出4
}
}通过以上六步,一次输出的就是 4, 6,4