x,y的传递是值传递,只传了进去,但没传出来,所以,打印结果还是调用pos前的值。你可以把 System.out.println("X="+x) 放到pos()里,就能看到了。

解决方案 »

  1.   

    在java中用方法调用变量作为参数,是指调用的是这个变量的一个副本,
    所以说只是将变量的值传递到访法中,原变量是不变的。
      

  2.   

    x,y是int型,也就是基本型别,在传参的时候传得是value,也就是说它copy了一个副本,传进去,跟自己没关系,所以不变,如果是对象型别,就可以改变!
      

  3.   

    变呀,为什么不变呢。
    x=a;
    y=b;
    有这两句话就应改变了。
    因为这里将x,y重新付值了。
    如果如下写法
    private void pos(int x,int y)
    {
        x+=100;
        y+=100; 
    }
    则x,y值不变,因为这时x,y是引数(参数),而不是数据成员x,y;
    要表示数据成员用this.x,this.y
      

  4.   

    不知道你在说什么.pos(x,y);
    System.out.println("x="+x);
    System.out.println("y="+y);这些东西也能直接写到类里面去?!楼上的的还在装高手!不知道你们是怎么编译通过的.无知的让人受不了