在基本数据类型中,当实参将数据传递给方法中的行参时,形参有自己的内存空间,所以形参的变化不会影响实参。那要交换两个数据怎么处理呀?

解决方案 »

  1.   

    交换两个数据是没办法的,只能在Method外进行交换
      

  2.   

    你看看是不是这样?
    public class test { public static void main(String[] args) 
    {

    Data d1=new Data(1);
    Data d2=new Data(2);
    swap(d1,d2);
    System.out.println("d1:"+d1.getValue());
    System.out.println("d2:"+d2.getValue());
    } public static void swap(Data a,Data b)
    {
    int tmp=a.getValue();
    a.setValue(b.getValue());
    b.setValue(tmp);
    }}public class Data {
    private int value;

    public Data(int a)
    {
    value=a;
    }
    public int getValue()
    {
    return value;
    }
    public void setValue(int a)
    {
    value=a;
    }
    }
    屏幕显示:
    d1:2
    d2:1
    确实交换了数值
      

  3.   

    看来面向对象也有缺点!C语言中多么简单,到了java中了要这么多代码!