java是值传递
既然是浅拷贝,那如何交换两个对象?
class Car
{
int model, no;
Car(int model, int no)
{
this.model = model;
this.no = no;
}
void print()
{
System.out.println("no = " + no +
", model = " + model);
}
}
class CarWrapper
{
Car c;
CarWrapper(Car c) {this.c = c;}
// using CarWrapper
class Main
{
public static void swap(CarWrapper cw1,
CarWrapper cw2)
{
Car temp = cw1.c;//交换的是包装类里的属性
cw1.c = cw2.c;
cw2.c = temp;
}
// Driver method
public static void main(String[] args)
{
Car c1 = new Car(101, 1);
Car c2 = new Car(202, 2);
CarWrapper cw1 = new CarWrapper(c1);
CarWrapper cw2 = new CarWrapper(c2);
swap(cw1, cw2);
cw1.c.print(); //访问c1,c2也用包装类来访问
cw2.c.print();
}
}