package com.imooc;
public class Test{
public static void main(String[] args) {
Circle c1 = new Circle(1);
Circle c2 = new Circle(2);
swap1(c1,c2);
System.out.println("After swap1:"+c1.radius+c2.radius);
swap2(c1,c2);
System.out.println("After swap2:"+c1.radius+c2.radius);
}
public static void swap1(Circle x,Circle y){
Circle t = x;
x = y;
y = t;
}
public static void swap2(Circle x,Circle y){
double k = x.radius;
x.radius = y.radius;
y.radius = k;
}
}
class Circle{
double radius;
Circle(double newRadius){
radius = newRadius;
}
}
不是说传递基本数据类型的参数时:方法内的参数变化不影响方法外的参数。而传递引用数据类型的参数时,是传递共享,参数会发生变化吗?为什么这里的swap1没发生变化而swap2却发生对调了?