Java是一门面向对象的编程语言,其中函数是面向对象编程的一个重要实现方式。函数中的参数在功能实现中起到很重要的作用。Java中的参数在传递方式上分为形式参数和实际参数两种类型。
形式参数表示函数定义中声明的参数,也称为形参。形式参数使用数据类型和参数名作为参数定义。比如:
public int add(int x, int y) { return x + y; }
在上述代码中,x和y就是函数add的形式参数。在调用函数时,形式参数值会被赋给相应的实际参数。
实际参数是函数调用中传递给函数的参数,也称为实参。实际参数可以是常量、变量或者表达式。实际参数传递的方式有两种,分别是值传递和引用传递。
值传递是指在传递参数时,实际参数的值被拷贝到形式参数中,即形参和实参的地址不同,变量名也不同。下面是值传递的一个例子:
public class Test { public static void main(String[] args) { int a = 1; int b = 2; int sum = add(a, b); System.out.println(sum); } public static int add(int x, int y) { return x + y; } }
在上面的例子中,变量a和b是实际参数,在调用函数add时,它们的值被拷贝到形式参数x和y中。
引用传递是指在传递参数时,实际参数的引用(地址)被拷贝到形式参数中,即形参和实参的地址相同,变量名也相同。下面是引用传递的一个例子:
public class Test { public static void main(String[] args) { int[] arr = {1, 2, 3}; change(arr); for (int i = 0; i< arr.length; i++) { System.out.println(arr[i]); } } public static void change(int[] a) { for (int i = 0; i< a.length; i++) { a[i] *= 2; } } }
在上面的例子中,数组arr是实际参数,在调用函数change时,它的引用被拷贝到形式参数a中。在函数中修改a的值时,实际参数arr也会被修改。