数组作为方法参数和返回值
以前的方法中我们学习了方法的参数和返回值,但是使用的都是基本数据类型。那么作为引用类型的数组能否作为
方法的参数进行传递呢,当然是可以的。
数组作为方法参数传递,传递的参数是数组内存的地址。
public static void main(String[] args) { int[] arr = { 1, 3, 5, 7, 9 }; //调用方法,传递数组 printArray(arr); } /* 创建方法,方法接收数组类型的参数 进行数组的遍历 */ public static void printArray(int[] arr) { for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }
输出:
数组作为方法返回值
数组作为方法的返回值,返回的是数组的内存地址
public static void main(String[] args) { //调用方法,接收数组的返回值 //接收到的是数组的内存地址 int[] arr = getArray(); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } public static int[] getArray() { int[] arr = {1, 3, 5, 7, 9}; //返回数组的地址,返回到调用者 return arr; }
方法的参数类型区别
- 分析下列程序代码,计算输出结果。
public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a); System.out.println(b); change(a, b); System.out.println(a); System.out.println(b); } public static void change(int a, int b) { a = a + b; b = b + a; }
- 分析下列程序代码,计算输出结果。
public static void main(String[] args) { int[] arr = {1, 3, 5}; System.out.println(arr[0]); change(arr); System.out.println(arr[0]); } public static void change(int[] arr) { arr[0] = 200; }
总结:
方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值.