调用方法时可以给该方法传递一个或者多个值,传给方法的值叫做实参,在方法内部,接受实参的变量叫做形参,形参的声明语法与变量的声明语法一样。形参只在方法内部有效。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