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

Java函数的传参方式和参数类型

发布时间:2023-07-01 13:28:07

在Java中,函数的传参方式和参数类型包括以下几种:

1. 值传递(pass by value):

值传递是指将参数的值复制一份给函数的形参,函数内部对形参的修改不会影响到实参。

示例代码:

public void test(int num) {
    num = 10;
}

public static void main(String[] args) {
    int num = 5;
    test(num);
    System.out.println(num);  // 输出5
}

2. 引用传递(pass by reference):

引用传递是指将参数的引用(内存地址)传递给函数的形参,函数内部对形参的修改会影响到实参。

示例代码:

public void test(int[] arr) {
    arr[0] = 10;
}

public static void main(String[] args) {
    int[] arr = { 5 };
    test(arr);
    System.out.println(arr[0]);  // 输出10
}

3. 基本类型参数:

基本类型参数包括byte、short、int、long、float、double、char、boolean等类型,它们在函数中都以值传递的方式进行传递。

示例代码:

public void test(int num) {
    num = 10;
}

public static void main(String[] args) {
    int num = 5;
    test(num);
    System.out.println(num);  // 输出5
}

4. 引用类型参数:

引用类型参数包括类、接口、数组等类型,它们在函数中以引用传递的方式进行传递。

示例代码:

public void test(StringBuilder sb) {
    sb.append(" World");
}

public static void main(String[] args) {
    StringBuilder sb = new StringBuilder("Hello");
    test(sb);
    System.out.println(sb.toString());  // 输出Hello World
}

需要注意的是,Java中的基本类型参数在函数内部的修改不会影响到实参,而引用类型参数在函数内部对其引用指向的对象进行修改会影响到实参。

另外,Java中还可以通过可变参数的方式传递参数,可变参数是指函数的形参个数是可变的,并且是同一类型的参数,它本质上是一个数组。

示例代码:

public void test(String... strs) {
    for (String str : strs) {
        System.out.println(str);
    }
}

public static void main(String[] args) {
    test("Hello", "World");  // 输出Hello、World
}

综上所述,Java函数的传参方式包括值传递和引用传递,参数类型包括基本类型和引用类型,还可以通过可变参数传递参数。但无论是值传递还是引用传递,在函数内部对参数的修改都不会影响到实参。