黑马程序员技术交流社区

标题: 怎么理解形参和实参? [打印本页]

作者: 没有翅膀的小鸟    时间: 2014-7-11 10:44
标题: 怎么理解形参和实参?
他们的区别用法在哪里?

作者: hxwo211314    时间: 2014-7-11 10:52
形参是定义方法的时候,该方法所携带的参数,不如说现在有一个方法
public void printInfo(String info){
System.out.println(info);
}
此处info就是一个形参,它是String类型的。
实参是你在调用方法的时候,给这个方法传递的参数值,比如说有这么一个语句:
**.printInfo("hello");(此处**表示printInfo方法所在类的一个对象),这里的"hello"就是一个实参。


形参和实参有以下显著的区别:
    1、形参不能离开方法。形参只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。而实参可以再程序的任何地方都使用。
    2、形参代表一个合集,具有不确定性,而实参代表一个独立事物,具有确定性(即使是为null)。也就是说,形参不能代表具体的对象,只能代表这些对象共同的属性(比如超类、各种其他自定义属性等等),而实参则是具体的对象(比如超类的实例)。
    3、形参的值在调用时根据调用者更改,实参则用自身的值更改形参的值(指针、引用皆在此列)、

用通俗的话来说,形参告诉你什么样的东西才能用它,就好像一个声明、公告或者通则;而实参则是告诉你我在用它,就像一个实干家
作者: 风决    时间: 2014-7-11 11:04
可以这样理解:
形参:只具其形,不具其神   
实参:有形有神,  
形参是没分配空间的参数,实参是已经分配空间的参数,程序运行的时候真正运行的都是实参,

作者: fantacyleo    时间: 2014-7-11 11:05
方法定义的参数列表中的参数叫做形参,实际调用方法时传入的参数叫实参。
比如:
int foo(String name, int age){…} //
这里name和age是形参。形参就像在说:“喂,请传给我一个String类型和一个int类型的变量”。形参名可以是任意的,但为了可读性,通常选取有意义的名词,告诉调用者这个参数的含义。
而foo("Jack", 18)中的"Jack"和18就是实参,实参是告诉方法foo:”我给你传了一个String类型和一个int类型的变量,请对他们执行你的操作吧“
作者: 導ぷ仙″兲蕐    时间: 2014-7-11 11:07
形参是定义方法时的参数,实参是使用方法时传的参数
作者: 晴儿    时间: 2014-7-11 11:20
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
作者: 54lier    时间: 2014-7-11 15:47
在java里面反正都是值的传递
作者: 燿陚√揚葳    时间: 2014-7-11 15:54
学习了.....
作者: 李文方    时间: 2014-7-11 16:18
都是很厉害的人啊,学习了,谢谢分享
作者: Adjin    时间: 2014-7-11 19:28
形参就是函数给外面提供的访问本方法的入口吧,用来接收外面传进来的数据,实参就是外面传进来的数
作者: 张慈瑞    时间: 2014-7-11 20:17
函数的参数列表中的是形参,实参是已经分配内存的参数。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2