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

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

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的值发生了交换。

 

你可能感兴趣的:(JAVA,总结)