public class Demo34 {
public static void main(String[] args) {
int a =10;
m(a);
System.out.println("main--->"+ a);
}
public static int m(int a) {
a++;
System.out.println("m----->"+ a);
return a;
}
}
为什么我有return值在main方法中输出的依旧不是11啊
那如果我想再main方法中输出11应该在哪里可以改
public static void main(String[] args) {
int a =10;
a = m(a);
System.out.println("main--->"+ a);
}
public static int m(int a) {
a++;
System.out.println("m----->"+ a);
return a;
}
调用m方法返回后再给a赋值
因为你这个a只是值传递,不是引用传递,所以在函数内部无法修改外部传入的值。参数实际进行了一个复制品
java函数中参数使用的是值传递,函数内部处理时拷贝了参数的备份进行处理,不会影响到参数的值,资料可以参考:https://blog.csdn.net/SummerOfFoam/article/details/109570841
想在main中输出11,将第6行改为 a=m(a) 即可。