欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java参数传值(模拟收音机)

程序员文章站 2024-03-04 10:20:35
...

引用类型参数的传值

Java的引用类型: 当参数是引用类型时,“传值”的是变量中存放的“引用”,而不是变量所引用的实体。

需要注意的是:对于两个相同类型的引用类型变量,如果具有相同的引用,就会用同样的实体。如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。但是,改变参数中存放的“引用”不会影响向其传值的变量中存放的“引用”,反之亦然。如图:

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的储电量就发生了同样的变化。

总结

  对象如果具有相同的引用,二者就具有完全相同的实体