Java参数传值(模拟收音机)
程序员文章站
2024-03-04 10:20:35
...
引用类型参数的传值
Java的引用类型: 当参数是引用类型时,“传值”的是变量中存放的“引用”,而不是变量所引用的实体。
需要注意的是:对于两个相同类型的引用类型变量,如果具有相同的引用,就会用同样的实体。如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。但是,改变参数中存放的“引用”不会影响向其传值的变量中存放的“引用”,反之亦然。如图:
电池类:
public class Battery {
int Eamount;
Battery (int amount){
Emount=amount;
}
}
收音机:
class Radio {
void openRadio(Battery battery ) {
battery.Eamount=battery.Eamount-10; //消耗电量
}
}
主类:
public class P70 {
public static void main(String[] args) {
Battery nanfu =new Battery(100); //创建电池的对象
System.out.println("南孚电池的电量是:"+nanfu.Eamount);
Radio radio= new Radio(); //创建收音机的对象
System.out.println("收音机开始使用南孚电池");
openRadio.openRadio(nanfu); //打开收音机
System.out.println("目前南孚电池的电量是:"+nanfu.Eamount);
}
}
/**
* 南孚是引用类型 指向的是一个实体
* openRadio.openRadio(nanfu); 中的南孚则是拷贝引用 引用相同则实体就相同
*/
在类中将Battery类创建的“电池”对象nanfu传递给openRadio(Battery battery)方法的参数battery,该方法消耗了battery的储电量(打开收音机会消耗电池的储电量),那么nanfu的储电量就发生了同样的变化。
总结
对象如果具有相同的引用,二者就具有完全相同的实体