java成员方法的三种参数(值参数、引用参数、不定长参数)

调用方法时可以给该方法传递一个或者多个值,传给方法的值叫做实参,在方法内部,接受实参的变量叫做形参,形参的声明语法与变量的声明语法一样。形参只在方法内部有效。java中方法的参数主要有三种:值参数、引用参数和不定长参数

1、值参数

值参数表面实参与形参之间按值传递,当使用值参数的方法被调用时,编译器为形参分配存储单元,然后将对应的实参的值复制到形参中,由于值类型的传递方式,所以,在方法中对值类型的形参的修改不会影响实参
以下示例

public class ValueTest1{
	public static void main(String [] args){
		ValueTest1 test1=new ValueTest1();
		int x=20;
		int y=40;
		System.out.println("运算结果 :"+test1.add(x,y));
		System.out.println("实参x的值"+x);
	}
	private int add(int x,int y){
		x=x+y;
		return x;
	}
}

测试结果:
运算结果 :60
实参x的值20

2、引用参数

如果在方法传递参数时,参数的类型是数组或者其他引用类型,那么,在方法对参数的修改会反映到原有的数组或者其他引用类型上,这种类型的方法参数,我们称之为引用参数。
以下示例

public class ValueTest2{
	public static void main(String [] args){
		ValueTest2 valueTest2=new ValueTest2();
		int[] i={0,1,2};
		System.out.println("原始数据:");
		for(int j=0;j<i.length;j++){
			System.out.println(i[j]+"  ");
		}
		valueTest2.change(i);
		System.out.println("\n修改后的数据:");
		for(int j=0;j<i.length;j++){
			System.out.println(i[j]+"  ");
		}
	}
	public void change(int [] i){
		i[0]=100;
		i[1]=200;
		i[2]=300;
	}
}

测试结果:
修改后的数据:
100
200
300

3、不定长参数

声明方法时,如果有若干个相同类型的参数,可以定义为不定长参数,该类型的参数声明如下:
权限修饰符 返回值类型 方法名(参数类型…… 类型名)
以下示例

public class MultiTest{
	public static void main (String [] args){
		MultiTest multi=new MultiTest();
		System.out.print("运算结果"+multi.add(20,30,40,50,60));
	}
	int add(int... x)//定义add方法,并指定不定长参数的类型为int
	{
		int result=0;
		for(int i=0;i<x.length;i++){
			result +=x[i];
		}
		return result;
	}
}

测试结果:
运算结果200

猜你喜欢

转载自blog.csdn.net/beyong_78439/article/details/88339656