学习目标
掌握数组的引用传递
可以使用方法接收或返回一个数组
了解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.2Java新特性对数组的支持
4.2.1可变参数
在调用一个方法时,必须根据方法的定义传递指定的参数,但是在JDK 1.5(JAVA 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 + "、");
}
}
}