Java中的引用类型参数传值
Java中的引用型数据包括数组,对象以及接口。而当参数是引用类型时,“传值”则变成了传递变量中的“引用”,而不是变量所引起的实体。对于两个相同类型的引用型变量,如果具有相同的引用,就会用同样的实体,因此,如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化,但是,改变参数中存放的“引用”不会影响向其传值的变量中存放的“引用”,反之同样成立。
引用类型参数传值的示例
这里以收音机使用电池为例,介绍“引用类型参数”的传值。我们定义了三个类:Battery(电池)、Radio(收音机)和E11(主类)。在主类中,我们创建了一个“收音机”对象和一个“电池”对象,并调用其他两个类中构造的“方法”来实现程序功能。
代码示例
下面是示例代码:
```java
class Battery {
int electricityAmount;
Battery(int amount) {
electricityAmount amount;
}
}
class Radio {
void openRadio(Battery battery) {
battery.electricityAmount battery.electricityAmount - 10;
}
}
public class E11 {
public static void main(String args[]) {
Battery nanfu new Battery(100);
("南孚电池的储电量是:" nanfu.electricityAmount);
Radio radio new Radio();
("收音机开始使用南孚电池");
(nanfu);
("目前南孚电池的储电量是:" nanfu.electricityAmount);
}
}
```
在主类中,通过Radio类创建一个“收音机”对象,Battery类创建“电池”对象。当调用`(nanfu)`方法时,我们需要将一个`Battery`对象传递给该方法的参数`battery`,即模拟收音机使用电池。
执行上述代码,输出结果如下:
```
南孚电池的储电量是:100
收音机开始使用南孚电池
目前南孚电池的储电量是:90
```
可以看到,当调用`openRadio`方法时,传递的参数`nanfu`的`electricityAmount`属性发生了变化,因为方法内部修改了参数变量所引用的实体。然而,这并不影响到`nanfu`变量本身所引用的实体。
结论
在Java中,当参数是引用类型时,传递的是变量中的引用,而不是变量所引起的实体。改变参数变量所引用的实体会影响到原变量的实体,但是改变参数中存放的“引用”不会影响向其传值的变量中存放的“引用”。这一点在编写代码时需要注意,以免产生意料之外的结果。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。