Java中传值和传址的问题

Java中传值和传址的问题

Java中取消了指针,不可能像C一样直接操作内存,但是由于对象的动态联编性,复杂数据类型作参数相当于指针的使用,即地址传递,而基本数据类型作参数传递则相当于值传递.看下面程序:

package test;

 

public class swapByValue {

     int x,y;

     public swapByValue (int x, int y)

     {

      this.x=x;

      this.y=y;

     }

     public void swap(int x,int y)

     {

      int z;

      z=x; x=y; y=z;

      System.out.println("x"+x);

      System.out.println("y"+y);

      //this.x=x;  //没有这两句,结果就不能成功,因为int是基本数据类型,传的是值

      //this.y=y;

     }

     public static void main(String args[])

     {

        

      swapByValue s= new swapByValue (3,4);

      System.out.println("Before swap: x= "+s.x+" y= "+s.y);

      s.swap(s.x,s.y);

      System.out.println("After swap: x= "+s.x+" y= "+s.y);

     

     }

}

 

posted on 2015-09-30 10:01  悄悄的来,匆匆的走  阅读(207)  评论(0编辑  收藏  举报

导航