java 中的基本数据类型的传递和引用数据类型的传递

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;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值