Java 方法参数的使用

首先,先来看一段简单地示例代码:

public static void doubleValue(double x) {
    x = 2 * x;
}

然后调用该方法:

double y = 10;
doubleValue(y);

调用之后y的值仍为10。

方法参数可以用两种类型:

  1. 基本数据类型;

  2. 引用类型。

对于传递引用类型时,可以方便的操作该引用的对象参数,方法得到的是对象引用的拷贝,对象引用及该引用的拷贝操作的是同一个对象实例。

但很多语言例如C++,提供两种传参方式,值调用和引用调用。它不同于Java,方法得到的是引用的拷贝,一个很典型的例子就是,交换两个引用所指向的对象。例程如下:

public static void swap(User x, User y) {
    User temp = x;
    x = y;
    y = temp;
}

如果Java对对象采用的是引用调用,那么这个方法将能实现交换数据的效果。

User a = new User("Jack");
User b = new User("Bob");
swap(a, b);

但这个方法并没有改变存储在a和b中的对象引用。swap方法的参数x和y被初始化为两个对象引用的拷贝,这个方法交换的是两个拷贝。

swap方法执行之后,a仍指向Jack,b指向Bob

总结一下:

  1. 一个方法不能修改一个基本数据类型的参数;

  2. 一个方法可以改变一个对象参数的状态;

  3. 一个方法不能让对象参数引用一个新的对象。


你可能感兴趣的:(Java方法引用参数)