java 中的实参和形参是什么东西
发布网友
发布时间:2022-04-20 00:56
我来回答
共4个回答
热心网友
时间:2022-07-09 13:31
首先纠正下java2000的第一个错误说法:"java里不叫这个,而是叫传值和传对象。".引用jiabobber的话:形参就是形式上的参数啊,实参就是实际的参数啊,其实各种语言形参实参都一样的概念的吧。
jiabobber的这句话是对的,实参,形参是程序设计语言中的通用概念,并不是只有C,C++有而JAVA没有,也不叫传对象;
直白的讲,形参是形式上的参数,实参是实际的参数;
形参只是对实参的一种抽象类型描述,只是声明一个函数(方法)能接受什么类型的实参,而不确定接受的实参具体内容是多少;实参就是传递给函数(方法)对应形参的具体内容(值),形参的初始指(内容)由实参决定.形参在函数(方法)结束返回后就被释放了.
到这里,就又出现程序设计语言中的另一通用概念参数传递方式:传值和传址;
1.传值方式,只是将实参的值的拷贝传递给函数(方法),在方法内对形参进行操作,其对象是实参的拷贝,对实参不能造成影响.在方法结束返回后,形参被释放丢弃,实参的内容并不会改变;
2.传址方式,将实参的地址传递给函数(方法),在方法内对形参进行操作即等于对实参进行相同的操作,在方法结束返回后,形参同样被释放,实参的内容将会是对形参进行操作的结果.
这里,又要纠正java2000的一个错误:"传对象的引用,用于把一个对象的地址作为参数传过去,而不是对象本身。"
对象引用即对象在堆中的地址,记住!不是对象,是对象的地址.而且对于传址方式,在方法中交换两个形参后,实参也应该同时被交换!
对于形参是对象引用的,其传递方式还是按值传递!传的是对象引用的拷贝值,并不是对象引用的地址,所以方法能改变对象引用所指的对象的状态(因为对象引用及其拷贝都指向同一个对象),却不能将两个对象交换(因为形参是对象引用的拷贝,所以改变形参并不能改变实参的内容,即对象的地址.不明白的要跟基本类型的类比).
真是好累!写这么一堆...下次不搞了!
热心网友
时间:2022-07-09 13:31
例如:
void a(int abc)
{
Syetem.out.println("abc是形参,值是"+a);
}
void b()
{
a(1);//1是实参。
}
意思就是把1传给abc
最后输出的结果是:abc是形参,值是1
热心网友
时间:2022-07-09 13:32
实参会随着形参的改变而改变,
凡是通过方法传参的都是形参,其他的都是实参。
热心网友
时间:2022-07-09 13:32
形参就是形式上的参数啊,实参就是实际的参数啊,其实各种语言形参实参都一样的概念的吧。
(我还没学JAVA,但学过C语言和C++)
比如要执行一个算法,Z=X+Y,这些字母就是形参啊,等代入X=1,Y=2的时候,具体数字或符号就是实参