Swap.java
package com.lye;
/**
*
* @ClassName: Swap
* @Description:交换类
* @author lye
* @date 2019年9月25日
*
*/
public class Swap {
private int number;
public Swap(int i){
this.number=i;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}
TestCon.java
package com.lye;
/**
*
* @ClassName: TestCon
* @Description:方法传参
* @author lye
* @date 2019年9月23日
*
*/
public class TestCon {
/*
* 当参数是基本数据类型时,方法不能修改实际参数的值
* 当参数是引用类型时,方法通过地址引用改变了实际参数对象的内容
*/
public static void main(String[] args) {
Swap i=new Swap(4);
Swap j=new Swap(5);
swap(i, j);
System.out.println(i.getNumber()+"+"+j.getNumber());
}
private static void swap(Swap i, Swap j) {//这里i和j只是改变了副本的交换,并没有改变交换的值
// TODO Auto-generated method stub
int temp=i.getNumber();
i.setNumber(j.getNumber());//把j赋值给i
j.setNumber(temp);//这种写法直接改变属性值,而不是改变地址
}
}