java里形参是什么

 我来答
zsosqnwcp
推荐于2018-02-28 · TA获得超过428个赞
知道答主
回答量:511
采纳率:50%
帮助的人:374万
展开全部
首先纠正下java2000的第一个错误说法:"java里不叫这个,而是叫传值和传对象。".引用jiabobber的话:形参就是形式上的参数啊,实参就是实际的参数啊,其实各种语言形参实参都一样的概念的吧。

jiabobber的这句话是对的,实参,形参是程序设计语言中的通用概念,并不是只有C,C++有而JAVA没有,也不叫传对象;

直白的讲,形参是形式上的参数,实参是实际的参数;
形参只是对实参的一种抽象类型描述,只是声明一个函数(方法)能接受什么类型的实参,而不确定接受的实参具体内容是多少;实参就是传递给函数(方法)对应形参的具体内容(值),形参的初始指(内容)由实参决定.形参在函数(方法)结束返回后就被释放了.

到这里,就又出现程序设计语言中的另一通用概念参数传递方式:传值和传址;

1.传值方式,只是将实参的值的拷贝传递给函数(方法),在方法内对形参进行操作,其对象是实参的拷贝,对实参不能造成影响.在方法结束返回后,形参被释放丢弃,实参的内容并不会改变;

2.传址方式,将实参的地址传递给函数(方法),在方法内对形参进行操作即等于对实参进行相同的操作,在方法结束返回后,形参同样被释放,实参的内容将会是对形参进行操作的结果.

这里,又要纠正java2000的一个错误:"传对象的引用,用于把一个对象的地址作为参数传过去,而不是对象本身。"

对象引用即对象在堆中的地址,记住!不是对象,是对象的地址.而且对于传址方式,在方法中交换两个形参后,实参也应该同时被交换!
对于形参是对象引用的,其传递方式还是按值传递!传的是对象引用的拷贝值,并不是对象引用的地址,所以方法能改变对象引用所指的对象的状态(因为对象引用及其拷贝都指向同一个对象),却不能将两个对象交换(因为形参是对象引用的拷贝,所以改变形参并不能改变实参的内容,即对象的地址.不明白的要跟基本类型的类比).

真是好累!写这么一堆...下次不搞了!
追问
对象的引用能详细的说一下吗
汐日南莘
推荐于2016-02-11 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7738万
展开全部
形式类型:是你在定义方法时括号里面的参数。
如:public void setName(String name){this.name = name;}
name:就是形式参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ce7f3ccb4
2011-07-12 · TA获得超过1950个赞
知道大有可为答主
回答量:2299
采纳率:0%
帮助的人:1921万
展开全部
public int cal(int a,int b)

System.out.print(a+b)

int cal( 3,4)

将打印出 7
以上代码中a,b为形参,不是具体的数字
3,4为实参,为实际运算的参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Green142
2015-09-17 · TA获得超过355个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:105万
展开全部

很简单,看下面的例子就行:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jsagen4f
2011-07-12 · 超过12用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:18.5万
展开全部
如:
public static void main(String vargs[]){
class A{
int methodA(int X,int Y){//此处的X 、Y就是形参,就是预先放一个形式在这里,等待传入
……
}
}
int m=10;
int n=20;
A a=new A();
a.methodA(m,n);//m,n就是实参,也可用常量,即10,20
}

要注意:简单类型是值传递,即再新复制一个值给形参,这个值的改变,不会影响传进来的那个变量的值,而只改变形参;类类型是地址传递,即将类new出来的对象的地址传递给形参,不会再new出来一个对象,所有改变会影响传进来的那个对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式