学习目标

掌握数组的引用传递

可以使用方法接收或返回一个数组

了解Java对数组操作的支持

4.1传递及返回数组

之前的方法操作传递和返回的都是基本数据类型,但是方法中也可用来传递和返回数组。如果要向方法中传递一个数组,则方法的接收参数处必须是符合其类型的数组。而且数组属于引用数据类型,所以在把数组传递进方法之后,如果方法对数组本身做了任何修改,修改结果都是会保存下来的。

向方法中传递数组

public class ArrayRestoreDemo01 {

  public static void main(String[] args) {

  int temp[] = { 1, 3, 5 ,7,9};  // 使用静态初始化定义数组

  fun(temp);  // 传递数组引用

  for (int i = 0; i < temp.length; i++) {  // 循环输出

  System.out.print(temp[i] + "");

  }

  }

  public static void fun(int x[]) {  // 接收整型数组引用

  x[0] = 6;  // 修改第一个元素的内容

  }

}

内存状态

4.数组与方法 —— 数组的引用传递

使用方法返回一个数组

既然方法可以接收一个数组,那么方法也就可以返回一个数组,则此时,只需要在返回值类型声明处明确的写出返回的数组类型即可

4.2Java新特性对数组的支持

4.2.1可变参数

在调用一个方法时,必须根据方法的定义传递指定的参数,但是在JDK 1.5JAVA SE 5.0)之后产生了新的概念 —— 可变参数,即:方法中可以接收的参数不再是固定的,而是随着需要传递的,可变参数的定义格式如下:

返回值类型 方法名称(类型参数名称){}

使用可变参数定义方法

public class NewDemo01 {

  public static void main(String[] args) {

  System.out.print("不传递参数(fun()):");

  fun();  // 不传递参数

  System.out.print("\n传递一个参数(fun(1)):");

  fun(1);  // 传递一个参数

  System.out.print("\n传递五个参数(fun(1, 2, 3, 4, 5, 6)):");

  fun(1, 2, 3, 4, 5, 6);  // 传递五个参数

  }

  public static void fun(int... arg) {  // 可变参数,可以接收任意多个参数

  for (int i = 0; i < arg.length; i++) {

  System.out.print(arg[i] + "");

  }

  }

}

 4.2.2foreach输出

数组的输出,一般都会使用for循环输出,但在JDK 1.5之后为了方便数组的输出,提供了一种foreach语法,此语法的使用格式如下:

for(数据类型 变量名称 : 数组名称){

  …

  } 

使用foreach语法输出数组内容  

public class NewDemo02 {

  public static void main(String[] args) {

  System.out.print("不传递参数(fun()):");

  fun();  // 不传递参数

  System.out.print("\n传递一个参数(fun(1)):");

  fun(1);  // 传递一个参数 

  System.out.print("\n传递五个参数(fun(1, 2, 3, 4, 5, 6)):");

  fun(1, 2, 3, 4, 5, 6);  // 传递五个参数

  }

  public static void fun(int... arg) {  // 可变参数,可以接收任意多个参数

  for(int x : arg){  // 使用foreach输出

  System.out.print(x + "");

  }

  }

}

 

 

 

相关文章: