8.4 数组作为方法参数和返回值

8.4.1 数组作为方法参数

  • 数组作为方法参数传递,传递的参数是数组内存的地址。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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]);
}
}

8.4.2 数组作为方法返回值

  • 数组作为方法的返回值,返回的是数组的内存地址
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args) {
//调用方法,接收数组的返回值
//接收到的是数组的内存地址
int[] arr = getArray();
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
/*
* 创建方法,返回值是数组类型
* return返回数组的地址
*/
public static int[] getArray() {
int[] arr = { 1, 3, 5, 7, 9 };
//返回数组的地址,返回到调用者
return arr;
}

8.4.3 方法的参数类型区别

代码分析

  1. 分析下列程序代码,计算输出结果。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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;
    }
  2. 分析下列程序代码,计算输出结果。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    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;
    }

    总结:
      方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值.