用了这么久的Java,还是像C++那样用它,居然甚至没有用过参数是数组的情况,调试代码,有个异常一直未找到原因,后来自己查看调试,发现因为参数是数组,后面的操作导致原值被改变,Java的函数中的参数,除基本类型是值传递外,数组和对象都是引用传递,函数内的操作会直接影响原值,例子:
public class First {
private String[]origin = {” ss “,”is a beautiful girl”,”!”};;
private int[]originInt={2016,1,1};
private char[]originChar={‘h’,’e’,’y’};
public void arrayOrigin()
{
for(String it:origin)
System.out.print(it);
for(int it:originInt)
System.out.print(it);
for(char it:originChar)
System.out.print(it);
}
public String[] getArray()
{
return origin;
}
public int[] getInt()
{
return originInt;
}
public char[] getChar()
{
return originChar;
}
public void arrayCopy(String[]args0,int[]args1,char[]args2)
{
args0[2]="SO it is!";
args1[2]=11;
args2[2]='!';
}
}
测试类
package myJava;
public class mainTest {
public static void main(String[]args)
{
System.out.println("test!");
First mf = new First();
mf.arrayOrigin();
mf.arrayCopy(mf.getArray(),mf.getInt(),mf.getChar());
mf.arrayOrigin();
}
}
输出结果:
test!
ss is a beautiful girl!201611hey ss is a beautiful girlSO it is!2016111he!
ps:代码总是说实话;P。