<Java>函数的参数是数组

  用了这么久的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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值