package calculate;
class Test{
int val1;
int val2;
Test(int i1, int i2){
val1 = i1;
val2 = i2;
}
}
public class Demo {
Test test1;
Test test2;
public static void main(String[] args) {
Demo demo = new Demo();
demo.test1 = new Test(1, 2);
demo.test2 = new Test(3, 4);
int i1 = 5;
int i2 = 6;
System.out.println("初始值如下:");
System.out.println("demo.test1 = " + demo.test1.val1 + ", " + demo.test1.val2);
System.out.println("demo.test2 = " + demo.test2.val1 + ", " + demo.test2.val2);
System.out.println("i1 = " + i1);
System.out.println("i2 = " + i2);
System.out.println("测试如下:");
System.out.println("传值函数(1种情况)");
demo.fun1(i1, i2);
System.out.println("i1 = " + i1);
System.out.println("i2 = " + i2);
System.out.println("传引用函数(2种情况)");
System.out.println("1、交换两个对象引用");
demo.fun2(demo.test1, demo.test2);
System.out.println("demo.test1 = " + demo.test1.val1 + ", " + demo.test1.val2);
System.out.println("demo.test2 = " + demo.test2.val1 + ", " + demo.test2.val2);
System.out.println("1、修改对象引用的属性");
demo.fun3(demo.test1, demo.test2);
System.out.println("demo.test1 = " + demo.test1.val1 + ", " + demo.test1.val2);
System.out.println("demo.test2 = " + demo.test2.val1 + ", " + demo.test2.val2);
}
void fun1(int int1, int int2){
int1 = 4;
int2 = 3;
}
void fun2(Test t1, Test t2){
Test temp;
temp = t1;
t2 = t1;
t2 = temp;
}
void fun3(Test t1, Test t2){
t1.val1 = 0;
t1.val2 = 0;
t2.val1 = 0;
t2.val2 = 0;
}
}
结果如下所示: