public class TestCircle{
public static void main(String[] args){
Circle circle1 = new Circle(1);
Circle circle2 = new Circle(2);
swap1(circle1,circle2);
System.out.println(circle1.radius+"\t\t"+circle2.radius);
// 此处输出为 1 2
swap2(circle1,circle2);
System.out.println(circle1.radius+"\t\t"+circle2.radius);
// 此处输出为 2 1
}
public static void swap1(Circle x,Circle y){
/* x与circle1 具有相同的引用值 y有与circle2具有相同的引用值
虽然引用值x和y发生了交换了 但是对象本身的属性没有变化
x和y还是指向对象其本身的属性(半径)*/
Circle temp = x;
x = y;
y = temp;
}
public static void swap2(Circle x,Circle y){
/* x与circle1 具有相同的引用值 y有与circle2具有相同的引用值
由 x和y调用对象的引用值并发生了交换 对象的属性被改变*/
double temp = x.radius;
x.radius = y.radius;
y.radius = temp;
}
}
class Circle{
double radius;
Circle(double newRadius){
radius = newRadius;
}
}
java 中的基本数据类型的传递和引用数据类型的传递
最新推荐文章于 2022-09-03 14:29:00 发布