请问为什么输出是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
有帮助望采纳~~
第一个1是main函数的k,
第二个2是Koo的a(++koo.a);
第三个2是数组的值(++arry[0])。
感觉像121呢
你在调用add方法的时候没有收集传回数据