5.1.5 传递数组到成员方法
在定义类的成员方法时,其参数的数据类型可以是基本数据类型,也可以是数组、字符串和类对象等引用类型。在将数组作为形参时,形参的定义格式如下:
访问控制符 返回值 方法名(数据类型[] 数组名)
方法中数组形参的形式实际上是数组的声明格式,前面我们学习过数组初始化的一种形式就是用已初始化后的数组对一个新声明的数组进行初始化,数组做形参就是这种情况,因此,要求传递的实参,其数据类型应该与在方法中定义的形参的数据类型相同,同时,形参和实参会具有相同的物理存储地址,因此,形参和实参是同一个数组,当然,在成员方法中队形参数组中各个元素的任何修改,都会使传递给它的实参数组的各个元素值发生变化,这种参数的传递方式被称为“双向地址传递”。
一般来说,如果成员方法的形参数据类型为基本数据类型,这时候参数传递方式是“单向值传递”,若果成员方法的形参数据类型为引用数据类型(数组,字符串、类对象等),则参数传递方式是“双向地址传递”。
采用数组名作形参的方式修改[例5-3]。
[例5-4]
class Change{
public void swap(int arr[]){
System.out.println("交换前形参:\n arr[0]="+arr[0]+" arr[1]="+arr[1]);
int temp;
temp=arr[0];
arr[0]=arr[1];
arr[1]=temp;
System.out.println("交换后形参:\n arr[0]="+arr[0]+" arr[1]="+arr[1]);
}
}
public class Test5_4 {
public static void main(String[] args) {
int[] arr={5,8};
Change c = new Change();
System.out.println("交换前实参:\n arr[0]="+arr[0]+" arr[1]="+arr[1]);
c.swap(arr);
System.out.println("交换后实参:\n arr[0]="+arr[0]+" arr[1]="+arr[1]);
}
}
运行结果为:
交换前实参:
arr[0]=5 arr[1]=8
交换前形参:
arr[0]=5 arr[1]=8
交换后形参:
arr[0]=8 arr[1]=5
交换后实参:
arr[0]=8 arr[1]=5
从运行结果可以看出,对形参数组arr两个元素arr[0]和arr[1]的修改影响到了实参数组arr的两个元素arr[0]和arr[1]。这里需要注意的是,形参和实参的名字都是arr,需要区分哪个是形参,哪个是实参。
向方法传递数组元素值的“单向值传递方式”和普通变量效果是一样的,因此,这种情况完全可以用普通变量来代替。在实际应用中,我们更多的是使用向方法传递数组名的“双向地址传递”方式。
2017年计算机二级考试java章节辅导:传递数组到成员方法.doc正在阅读:
2017年计算机二级考试java章节辅导:传递数组到成员方法11-25
我和国旗一起合影作文600字08-27
2019年甘肃同等学力考试时间及考试科目:2019年5月19日08-31
2017年辽宁高考语文真题及答案11-21
2019年辽宁本溪中考政治真题11-20
大学生运动会通讯稿合集【13篇】07-04
秋叶作文500字07-02
生活因无限而精彩作文600字11-17
我的好同学作文400字10-13