欢迎访问宙启技术站
智能推送

Java中如何传递参数到函数中?

发布时间:2023-09-15 16:16:05

在Java中,我们可以通过值传递的方式将参数传递给函数。Java中的参数传递可以使用两种方式:按值传递和按引用传递。

1. 按值传递:按值传递是指将变量的值复制一份,然后将这个副本传递给函数。在函数内部对参数进行的任何修改都不会影响原始变量的值。

例如,假设我们有一个函数 add 用于计算两个数的和,示例代码如下:

public static int add(int a, int b) {
    return a + b;
}

public static void main(String[] args) {
    int num1 = 10;
    int num2 = 20;
    int sum = add(num1, num2); // 通过值传递将num1和num2传递给函数
    System.out.println("Sum: " + sum); // 输出结果为30
}

在上述代码中,add 函数接受两个参数 ab,通过值传递的方式将 num1num2 的值分别复制到 ab 中进行计算。在 add 函数内部对 ab 的修改不会影响 num1num2 的值。

2. 按引用传递:按引用传递是指将变量的引用(地址)传递给函数,通过引用可以直接修改原始变量的值。

在Java中,除了基本类型(如int、double、boolean等)是按值传递外,其余的类型(包括数组和对象)都是按引用传递的。

例如,假设我们有一个函数 changeName 用于修改一个人的名字,示例代码如下:

public static void changeName(Person person, String newName) {
    person.setName(newName);
}

public static void main(String[] args) {
    Person p = new Person("John");
    System.out.println("Before change: " + p.getName()); // 输出结果为"John"
    changeName(p, "Mike"); // 通过引用传递将p的引用传递给函数
    System.out.println("After change: " + p.getName()); // 输出结果为"Mike"
}

在上述代码中,changeName 函数接受一个 Person 对象的引用和一个新的名字,通过引用传递的方式将 p 的引用传递给函数,并直接修改了 p 对象的名字。因为传递的是引用,所以在 changeName 函数内部对 person 引用的修改会影响到原始的 p 对象。

需要注意的是,尽管传递的是引用,但无法直接修改传递的对象的引用。例如,无法在函数内部将传递的对象引用指向新的对象,并改变原始对象的引用。这是因为Java中的参数传递仍然是按值传递的,将对象引用传递给函数,只是将引用的副本传递给函数。