1、参数(形式参数和实际参数)
数据可以作为参数传递给方法。 参数充当方法内部的变量。
在方法名称后的括号内指定参数。 可以根据需要添加任意数量的参数,只需用逗号分隔即可。
下面的示例使用一个名为fname的String
作为方法的参数。
例如:
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);
}
}