形参与实参
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