以前学习C的 时候参数传递的方式有两种,一种叫"值传递",值传递传的是一个实体,通俗地说就是传值;另一种叫"引用传递",引用传递传的是指针。
在这里重点讨论以引用的方式传递参数的方式。
在java中只要不是new出来的对象那么就是
MyClass mc = new MyClass(); //在内存中生成MyClass对象
MyClass mc2 = mc; //将mc2指向mc在内存中的对象
上面的mc和cm2是同一个对象。
Operator opt = new Operator();
MyClass mc = new MyClass();
MyClass mc2 = mc;
mc.add();
System.out.println(mc.i);
System.out.println(mc2.i);
opt.sub(mc2);
System.out.println(mc.i);
System.out.println(mc2.i);
结果:
run:
1
1
0
0
成功生成(总时间:0 秒)
Operator opt = new Operator();
MyClass mc = opt.getMyClass();
mc.add();
System.out.println("add:" + mc.i);
add(mc);
opt.sub1(mc);
System.out.println("sub1:" + mc.i);
opt.sub2(mc);//在方法里面对对象进行操作也会对main中的对象有影响,reference调用的结果
System.out.println("sub1:" + mc.i);
运行结果:
run:
add:1
sub1:2
sub1:-98
成功生成(总时间:0 秒)