数组作为方法参数
以前的方法中我们学习了方法的参数和返回值,但是使用的都是基本数据类型。那么作为引用类型的数组能否作为方法的参数进行传递呢,当然是可以的。
- 数组作为方法参数传递,传递的参数是数组内存的地址。
代码举例
package demo04; /* 数组可以作为方法的参数。 当调用方法的时候,向方法的小括号进行传参,传递进去的其实是数组的地址值。 */ public class Demo01ArrayParam { public static void main(String[] args) { int[] array = { 10, 20, 30, 40, 50 }; printArray(array); // 传递进去的就是array当中保存的地址值 } /* 三要素 返回值类型:只是进行打印而已,不需要进行计算,也没有结果,用void 方法名称:printArray 参数列表:必须给我数组,我才能打印其中的元素。int[] array */ public static void printArray(int[] array) { System.out.print("printArray方法收到的参数是:"); System.out.print(array); // 地址值 for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } }
执行结果
数组作为方法返回值
- 数组作为方法的返回值,返回的是数组的内存地址
代码举例
package demo04; /* 一个方法可以有0、1、多个参数;但是只能有0或者1个返回值,不能有多个返回值。 如果希望一个方法当中产生了多个结果数据进行返回,怎么办? 解决方案:使用一个数组作为返回值类型即可。 任何数据类型都能作为方法的参数类型,或者返回值类型。 数组作为方法的参数,传递进去的其实是数组的地址值。 数组作为方法的返回值,返回的其实也是数组的地址值。 */ public class Demo02ArrayReturn { public static void main(String[] args) { int[] result = calculate(10, 20, 30); System.out.println("main方法接收到的返回值数组是:"); System.out.println(result); // 地址值 System.out.println("总和:" + result[0]); System.out.println("平均数:" + result[1]); } public static int[] calculate(int a, int b, int c) { int sum = a + b + c; // 总和 int avg = sum / 3; // 平均数 // 两个结果都希望进行返回 // 需要一个数组,也就是一个塑料兜,数组可以保存多个结果 /* int[] array = new int[2]; array[0] = sum; // 总和 array[1] = avg; // 平均数 */ int[] array = { sum, avg }; System.out.print("calculate方法内部数组是:"); System.out.println(array); // 地址值 return array; } }
执行结果
方法的参数类型区别
- 方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值.