关于#java#的问题:java参数问题

请问为什么输出是1,2,2?

package test01;

public class Home04 {

    public static void main(String[] args) {
     int a=1;
     Koo k=new Koo();
     add(a);
     add(k);
     int[] arry={1,2};
     add(arry);
     System.out.println(a+","+k.a+","+arry[0]);
    }
   public static int add(int a){
       return ++a;
   }
   public static int add(Koo koo){
       return ++koo.a;
   }
   public static int add(int[] arry){
       return ++arry[0];
   }
}
  class Koo{
       int a=1;
   }


因为一开始是访问局部变量a,进入int的重载函数,因为第一个函数只是return 0,并未对a本身做修改
对成员变量的修改进入第二个重载函数,函数内对成员变量进行自增,修改了成员变量本身,所以输出的是2
第三个变量传入的是int[]类型,进入第三个重载函数,修改了arry[1]的值,但是输出的是arry[0],所以最终输出为1,2,1
有帮助望采纳~~

img

第一个1是main函数的k,
第二个2是Koo的a(++koo.a);
第三个2是数组的值(++arry[0])。

感觉像121呢

你在调用add方法的时候没有收集传回数据