public class ParameterTransfer { /*将传入值互换的方法*/ public static void replace(int a,int b){ int temp = a; a = b; b = temp; System.out.println("replace方法中a为:" + a); System.out.println("replace方法中b为:" + b); } public static void main(String[] args){ int a = 6; int b = 9; ParameterTransfer.replace(a,b); System.out.println("main方法中a为:" + a); System.out.println("main方法中b为:" + b); } }
输出结果为:
2. 传递的参数类型是引用类型
引用类型传参时,传递的实质上是堆中某个地址码,即传递了对堆中某个对象的引用,所以只要有方法对其进行修改,会影响到参数本身所指向的堆中的具体对象。例子如下:
class Temporary{ int a; int b; } public class ParameterTransfer { /*换值的方法,需传入一个对象*/ public static void change(Temporary ty){ int temp = ty.a; ty.a = ty.b; ty.b = temp; } public static void main(String[] args){ Temporary ty2 = new Temporary(); ty2.a = 6; ty2.b = 9; /*传入对象给change方法*/ ParameterTransfer.change(ty2); System.out.println("main方法中ty2.a为:" + ty2.a); System.out.println("main方法中ty2.b为:" + ty2.b); } }
输出结果为:
解析图如下:
总结:基本类型传值传递的是值,引用类型传值传递的是对对象的引用。