形参与实参

public class test {
    static int a;
    public static void main(String[] args) {
        a =10;
        parameter(10);//或parameter(a);
System.out.println("3:"+a);
    }
    private static void parameter(int a){
System.out.println("1:"+a);
        a = 20;
System.out.println("2:"+a);
    }
}

运行结果:

1:10
2:20
3:10

  

此例子中parameter(10)中的10为实参,实参就是以一个实际参数传过去,方法parameter(int a)与parameter(a)中的a都是形式参数,

实参(argument):
  全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。此例子中parameter(10)中的10为实参,实参就是以一个实际参数传过去。      
形参(parameter):
全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。方法parameter(int a)与parameter(a)中的a都是形式参数,接收parameter(10)中传过来的实参,这时实参变为形参。
  最后的结果3:10,是因为parameter(int a)中重新实义了一个形参变量a,与全局变量a不相等,所以parameter方法里的操作传不回main中,所谓直接赋值形参会改变形参的引用,但并不能改变作用域外的值,例子中作用域指parameter方法
 
 
将上面例子修改下:
public class test {
    static int a;
    public static void main(String[] args) {
        a =10;
        parameter();
System.out.println("3:"+a);
    }
    private static void parameter(){
System.out.println("1:"+a);
        a = 20;
System.out.println("2:"+a);
    }
}

结果:

1:10
2:20
3:20

  

 

posted @ 2014-02-10 09:12  cnJun  阅读(535)  评论(0编辑  收藏  举报