Java 方法 参数

Java 中,方法的参数是方法接收外部输入的方式,它们可以是各种类型的数据,如基本数据类型、对象、数组等。理解 Java 方法参数的使用规则对于编写清晰和灵活的代码非常重要。本文主要介绍Java 类中方法的参数,还包括形式参数和实际参数,及它们之间区别和相关的示例代码。

1、参数(形式参数和实际参数)

数据可以作为参数传递给方法。 参数充当方法内部的变量。

在方法名称后的括号内指定参数。 可以根据需要添加任意数量的参数,只需用逗号分隔即可。

下面的示例使用一个名为fnameString作为方法的参数。

例如:

public class Main {
  static void myMethod(String lname) {
    System.out.println(lname + " is very good");
  }

  public static void main(String[] args) {
    myMethod("c");
    myMethod("java");
    myMethod("python");
  }
}

参数传递给方法时,它称为自变量。 因此,在上面的示例中:fname是一个形式参数,简称形参,而,c和python是实际参数,简稳称实参。

2、可变参数(Varargs)

可以根据需要定义多个参数,还可以方法接受可变数量的参数,这些参数会被视为一个数组。在方法声明时,使用 ... 语法。

1)定义多个参数

例如:

public class Main {
  static void myMethod(String fname, int age) {
    System.out.println(fname + " 学习了 " + age + "年");
  }

  public static void main(String[] args) {
    myMethod("c", 5);
    myMethod("python", 8);
    myMethod("java", 3);
  }
}

注意:当使用多个参数时,调用方法传递的参数个数,也就是实参的个数,必须方法的参数的个数相同,也就是与形参的个数相同,并且参数的顺序也要相同。

2)可变参数

public class Main {
    // 使用可变参数接收多个 int 类型的参数
    public static void printNumbers(int... numbers) {
        for (int number : numbers) {
            System.out.print(number + " ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
        printNumbers(1, 2, 3, 4);  // 输出: 1 2 3 4 
        printNumbers(5, 6);  // 输出: 5 6
        printNumbers();  // 输出: (空行)
    }
}

3、方法返回值(return)

上面的示例中使用的void关键字指示该方法不应返回值。如果要让该方法返回值,则可以使用原始数据类型(例如,int,char等)代替void,然后在方法内使用return关键字:

例如:

public class Main {
  static int myMethod(int x) {
    return 5 + x;
  }

  public static void main(String[] args) {
    System.out.println(myMethod(3));
  }
}
// 输出 8 (5 + 3)

下面示例中方法输出两个参数的和:

例如:

public class Main {
  static int myMethod(int x, int y) {
    return x + y;
  }

  public static void main(String[] args) {
    System.out.println(myMethod(5, 3));
  }
}
// 输出 8 (5 + 3)

还可以将方法的返回值直接赋值给变量:

例如

public class Main {
  static int myMethod(int x, int y) {
    return x + y;
  }

  public static void main(String[] args) {
    int z = myMethod(5, 3);
    System.out.println(z);
  }
}
// 输出 8 (5 + 3)

4、参数默认值

Java 不支持为方法参数设置默认值,但可以通过重载方法或使用 Optional 来实现类似的功能。

例如:

public class Main {
    // 重载方法,设置默认值
    public static void greet() {
        greet("Hello, World!");  // 默认值
    }

    public static void greet(String message) {
        System.out.println(message);
    }

    public static void main(String[] args) {
        greet();  // 输出: Hello, World!
        greet("Hi there!");  // 输出: Hi there!
    }
}

5、形参和实参的区别

形参(形式参数)出现在函数定义中,并且在整个函数体内都可以使用,但一旦函数执行结束,形参的作用域也随之结束,无法在外部使用。实参(实际参数)则出现在主调函数中,传递给被调函数时,实参的值会传递给形参,但在被调函数内部无法再访问主调函数中的实参变量。形参和实参的主要功能是实现数据传递。当函数调用发生时,主调函数将实参的值传送给被调函数的形参,从而实现数据的传递。形参是在函数定义时声明的参数,用于接收调用时传入的实参;而实参是在调用函数时传递给函数的具体值或变量。

public class Main {

    // 这是方法定义,形参是 x 和 y
    public static int add(int x, int y) {  // x 和 y 是形参
        return x + y;
    }

    public static void main(String[] args) {
        // 这里调用了 add 方法,传入的实参是 5 和 3
        int result = add(5, 3);  // 5 和 3 是实参
        System.out.println("The sum is: " + result);
    }
}

    推荐阅读
    cjavapy编程之路首页