//值传递跟引用传递的区别
//购物券www.591q.cn
class Person1{ int a; int b; } public class Test { int m,n; void test1(Person1 person){ System.out.println("方法内赋值前引用传递结果1:"+person.a+"+"+person.b+"="+(person.a+person.b)); person.a=10; } void test2(int m,int n){ System.out.println("方法里赋值前值传递结果1:"+(m+n)); m=1; n=2; System.out.println("方法里赋值之后值传递结果2:"+(m+n)); } public static void main(String[] args) { Test t=new Test(); //值传递 int mm=3; int nn=4; t.test2(mm,nn); System.out.println("方法外值传递结果不受方法内赋值影响:"+(mm+nn)); //引用传递 Person1 person=new Person1(); person.a=1; person.b=2; t.test1(person); System.out.println("方法内赋值后引用传递结果2:"+person.a+"+"+person.b+"="+(person.a+person.b)); }}
输出结果:
方法里赋值前值传递结果1:7方法里赋值之后值传递结果2:3方法外值传递结果不受方法内赋值影响:7方法内赋值前引用传递结果1:1+2=3方法内赋值后引用传递结果2:10+2=12
