package com.cjg.test;
//值传递跟引用传递的区别
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