1 //方法的参数传递机制(1);基本类型做形参的传递。 2 class PrimitiveTransferTest 3 { 4 public static void swap(int a,int b) 5 { 6 //下面代码实现a和b交换 7 int temp = a; 8 a = b; 9 b = temp; 10 System.out.println("swap方法里,a的值是:"+a+",b的值是:"+b); 11 } 12 public static void main(String[] args) 13 { 14 int a = 6; 15 int b = 9; 16 swap(a,b); 17 System.out.println("交换结束后,变量a的值是:"+a+",变量b的值是:"+b); 18 } 19 } 20 21 22 //方法的参数传递机制(2);引用类型做形参的传递。 23 class DataWrap 24 { 25 int a; 26 int b; 27 } 28 class ReferenceTransferTest 29 { 30 public static void swap(DataWrap dw) 31 { 32 //下面代码实现a和b的交换。 33 dw.a = dw.a^dw.b; 34 dw.b = dw.a^dw.b; 35 dw.a = dw.a^dw.b; 36 System.out.println("swap方法里,a成员变量的值是:"+dw.a+",b成员变量的值是:"+dw.b); 37 System.out.println(dw);//DataWrap@2a139a55 38 //dw = null;//这里是为了证明若把这个dw的应用指向空,则不会影响main方法里的dw的指向。 39 } 40 public static void main(String[] args) 41 { 42 DataWrap dw = new DataWrap(); 43 dw.a = 6; 44 dw.b = 9; 45 swap(dw); 46 System.out.println("交换结束后,a成员变量的值是:"+dw.a+",b成员变量的值是:"+dw.b); 47 System.out.println(dw);//DataWrap@2a139a55 //证明了引用传递传递的是地址(也就是指针)其实也是值(址)传递 48 } 49 }
从以上两个例子可看出,Java中的方法的参数传递只有一种形式,就是值传递。