数组类型的参数
我们先来简单的数组类型参数的使用
public class Demo{
public static void main(String args[]){
int[] nums= {111,222,333,444,555};
printArray(nums);
}
public static void printArray(int[] a) {
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+"\t");
}
}
方法调用时,将nums中的地址赋值给a,此时二者指向同一个数组。
传递参数时,基本类型传递的是变量中的值,引用类型传递的是变量中的地址
数组类型的返回值
import com.qf.pro2103.Util.ArrayUtil;
public class Demo{
public static void main(String args[]){
int[] nums= {111,222,333,444,555};
//定义一个c[]来接收方法返回的数组
int[] c=printArray(nums);
//调用自己写的工具类来打印c[]
ArrayUtil.printIntArray(c);
}
public static int[] printArray(int[] a) {
//将a[]的长度扩大
int[] b=new int[a.length*2];
//将a[]赋值给b[]
for(int i=0;i<a.length;i++) {
b[i]=a[i];
}
return b;
}
}
注意:printArray()方法的类型是int[],不属于基本类型
只有这样才能返回int类型的数组
上述代码执行过程中,nums[]传入printArray()中传的是地址
printArray()方法返回的也是数组b[]的地址,并不是复制值
可变长数组 :
概念:
可接收多个同类型实参,个数不限,使用方式与数组相同
语法:
数据类型...形参名 //必须定义在形参列表最后,且只能有一个
public class Demo{
public static void main(String args[]){
printArray(111,222,333,444,555);
}
public static void printArray(int...a) {
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+"\t");
}
}
}
上述的代码中printArray方法中不仅仅是传入数组,也可以在传入数组的同时传入基本类型的参数。不过,必须要把数组(数据类型...形参名 )写在最后面,例如下面的代码
public class Demo{
public static void main(String args[]){
printArray(111,222,333,444,555);
}
public static void printArray(int num1,int num2,int...a) {
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+"\t");
}
}
}
上述在传入数组的同时,传入了两个整数类型的参数,所以111,222作为了整数类型的参数传入了方法中,333,444,555才是数组a的数组元素。