JAVA使用方法来交换两个数的值

10 篇文章 0 订阅

参数传递方法主要有三种:

1、按值传递

     接收的是调用者提供的变量的拷贝,不改变参数的值。

2、按引用传递

      接收的是调用者提供的变量地址。

3、按指针传递

      接收的是调用者提供的指针的拷贝,不改变指针的值和地址,但可以改变指针指向的地址。

 

JAVA参数传递方法只有一种,按值传递。

 

JAVA数据类型:

1、基本数据类型(byte,int,long,short,float,double,char,boolean)

      在使用方法时,基本数据类型由于在内存中的一个地址存放的是这些变量的值,所以方法中的形参就是复制这些变量的值,所以不会影响到原来变量的值。

2、对象引用数据类型(类,接口类型,数组类型,枚举类型,注解类型)

      在使用方法时,引用类数据类型由于引用的是内存地址而不是具体的值,所以方法中的形参就是复制这些变量值的地址,在进行修改的时候,会影响到原来的变量。

 

在Java中,对于基本数据类型,Java方法并不能修改变量内容,但是对于自定义类型是可以修改的,但参数传递使用的是值传递而非引用传递。

 

通过这两个代码,你可以发现其中的不同。

public class Main1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a=2,b=3;
		swap(a,b);
		System.out.println(a);
		System.out.println(b);
	}
	public static void swap(int a,int b)
	{
		int t;
		t=a;
		a=b;
		b=t;
	}
}

结果显示,a,b的值并未发生交换 

public class Mine {
	private Object num;
	public Mine(Object num)
	{
		this.num=num;
	}
	public Mine() {
		// TODO Auto-generated constructor stub
	}
	public Object getNum() {
		return num;
	}
	public void setNum(Object num) {
		this.num = num;
	}
	
}
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Mine m1=new Mine(2);
		Mine m2=new Mine(3);
		
		swap(m1,m2);
		
		System.out.println(m1.getNum());
		System.out.println(m2.getNum());
	}
	public static void swap(Mine m1,Mine m2)
	{
		Object t=m1.getNum();
		m1.setNum(m2.getNum());
		m2.setNum(t);
	}
}

结果显示,a,b的值发生了交换。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值