Java是一門面向?qū)ο蟮木幊陶Z言,其中函數(shù)是面向?qū)ο缶幊痰囊粋€重要實現(xiàn)方式。函數(shù)中的參數(shù)在功能實現(xiàn)中起到很重要的作用。Java中的參數(shù)在傳遞方式上分為形式參數(shù)和實際參數(shù)兩種類型。
形式參數(shù)表示函數(shù)定義中聲明的參數(shù),也稱為形參。形式參數(shù)使用數(shù)據(jù)類型和參數(shù)名作為參數(shù)定義。比如:
public int add(int x, int y) { return x + y; }
在上述代碼中,x和y就是函數(shù)add的形式參數(shù)。在調(diào)用函數(shù)時,形式參數(shù)值會被賦給相應(yīng)的實際參數(shù)。
實際參數(shù)是函數(shù)調(diào)用中傳遞給函數(shù)的參數(shù),也稱為實參。實際參數(shù)可以是常量、變量或者表達式。實際參數(shù)傳遞的方式有兩種,分別是值傳遞和引用傳遞。
值傳遞是指在傳遞參數(shù)時,實際參數(shù)的值被拷貝到形式參數(shù)中,即形參和實參的地址不同,變量名也不同。下面是值傳遞的一個例子:
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是實際參數(shù),在調(diào)用函數(shù)add時,它們的值被拷貝到形式參數(shù)x和y中。
引用傳遞是指在傳遞參數(shù)時,實際參數(shù)的引用(地址)被拷貝到形式參數(shù)中,即形參和實參的地址相同,變量名也相同。下面是引用傳遞的一個例子:
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; } } }
在上面的例子中,數(shù)組arr是實際參數(shù),在調(diào)用函數(shù)change時,它的引用被拷貝到形式參數(shù)a中。在函數(shù)中修改a的值時,實際參數(shù)arr也會被修改。