基本类型中形式参数的改变为什么不会影响到实际参数?我举例一下:
1.我写了一个在主函数中写一个for循环,并在方法体内定义了一个局部变量,也就是累加器:
public static void main(String args[])
{
int sum=0
for(int i=0;i<10;i++)
{
sum+=i;
}
System.out.println(sum);
}
sum相当于做了累加器,sum会有一个值。
第一代码不是我的问题,看第二段代码。
public static void main(String[] args)
{
int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b);//a=10,b=20.这里我没有疑问
change(a,b);//a=20,b=40.没有疑问
System.out.println("a:"+a+",b:"+b);//这里a=10,b=20.问题来了
}
public static void change(int a,int b)
{
System.out.println("a:"+a+",b:"+b);
a = b;
b = a + b;
System.out.println("a:"+a+",b:"+b);
}
我加粗的地方,就是疑问,第一段代码中sum和第二段代码中的a和b,都作为局部变量,为什么sum能累加一个值,而a和b却变成了初始值了?
|
|