比如classB中引用到classA中的一个静态方法(两个参数a,b),在调用这个静态方法之后,希望a,b的值能够互相调换。
请问这个静态方法怎么实现啊????!!!!
public class TestA { public static void HHA(int a,int b){
int c;
c=a;
a=b;
b=c;
}
}public class TestB {
public static void main(String[] args){
int a=10;
int b=11;
         TestA.HHA(a,b);
System.out.println("===a=="+a+"====b="+b); }
}怎么使a与b的值互换啊?????
谢谢!!!

解决方案 »

  1.   

    JAVA是按值传递,不是按应用传递,
    所以这样是达不到目的的,
    即使在方法内部改变了,外部a,b的值还是不会改变的
      

  2.   

    java的基本机制啊。你在开玩笑吧?
      

  3.   

    你的a和b只是在方法HHA()中实现了改变,但是你是传的值,所以输出的时候仍旧是原来的。
      

  4.   

    如果就是调换,何必这么麻烦,直接
    ublic class TestB {
    public static void main(String[] args){
    int a=10;
    int b=11;
    int c =a;b=c;a=b;
    System.out.println("===a=="+a+"====b="+b);}
    }
      

  5.   

    public class Hello extends Test {
        
        public static void main(String[] args) {
            Hello h = new Hello();
            h.m = 10;
            h.n = 11;
            h.change();
            System.out.println(h.m);
            System.out.println(h.n);
        }
    }
    class Test{
        public int m = 0;
        public int n = 1;
        public void change(){
            int c;
            c = this.m;
            this.m = this.n;
            this.n = c;
        }
    }
      

  6.   

    由此可见 只有是引用的时候才有可能去改变值
            System.out.println(h.m);
            System.out.println(h.n);
      

  7.   

    public static void main(String[] args){
      int a=10;
      int b=11;
      int[] ab = { a, b };
      swap(ab);
      a=ab[0];
      b=ab[1];
      System.out.println("===a=="+a+"====b="+b);
    }public static void swap(int[] ab) {
      int i = ab[1];
      ab[1] = ab[0];
      ab[0] = i;
    }
      

  8.   

    如果参数是2个int型是不行的。
    java规定:
        对于简单数据类型,是值传递,方法接收参数的值,但是不能改变它。如果要改变参数的值,则用引用数据类型。因为引用数据类型传入的是数据在内存中的地址,方法中对数据的操作可以改变数据的值。
      

  9.   

    1 java语言只能进行值传递并且不像C/C++有指针变量.
    2 java语言有八个原始类型,int是其中的一种,把原始类型进行参数传递时,传的是值本身,所以不能改变main方法中a,b是值.
    3 解决办法我只想了一个,构造整型的包装类,把int值用构造函数传到包装类中,用包装类的对象作参数进行传递,再得用包装类的方法对值操作.因为传递的是引用值.
      构造方法:    int a=10;
                   int b=11;
                   Integer aInt=new Integer(a);
                   Integer bInt=new Integer(b);