JAVA如何理解带参数的方法呢

(1)一直不是很明白它的作用是什么,怎么去认识它理解它?
(2)在调用的时候,参数原本有值了调用后值是不是会被覆盖,或者什么。

这个问题两部分来回答,也就是参数的类型是那种类型,在java里,类型分为基本类型和引用类型两种,这两种做为参数是不同的。1、因为基本类型的值是存在栈,而引用类型需存两个东西,一个是对象的引用,一个是对象,引用放在栈里,对象放在堆里;引用是堆里对象的地址。举个例子:
int t = 12;
String str ="china";
t是基本类型,栈里存的值,就是占4个字节12的补码,如果操作t=4那么t所占4个字节空间的数据就变成了4。而str是一个引用,栈里面存了"china"对象的地址,而"china"这个对象是存在堆里面的,如果操作str="java",只是把str的引用指向栈里"java"对象,而"china"还是存在栈里的,只是没有了引用而不能访问到"china",当内存不足时,才会把"china"占用的空间回收。
回到主题。
当基本类型做为参数时,如fun(t)的调用是不会把t占有空间的地址给fun方法的,而是在fun方法里在
生成一个t具体值的拷贝,也就是说fun方法里不管如何操作t的拷贝,都不会对t=12造成任何影响。但当引用类型做为参数时,传的是引用,而不会再创建一个传进来的对象,如fun(str),str指向的就
是堆"china",当对str进行操作,就会影响到china对象的内部属性,就造成了"china"对象发生了变化。
其实java里的引用,就是一个内存地址,我们通过引用就能操作这个内存地址里的数据。

int[] a = {4};//a[0]=4
int[] b = a;
b[0]=3;//使a[0]=3
a,b指向同一个内存地址,通过a[0],b[0]访问的是同一个地址的数据。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-23
很好理解的,其实你可以理解为,为了让方法更具灵活性,所以才有了参数,打个比方:

一个求一段区域的和的,求和方法、就可以通过参数来指定区域,这就使得同一份代码,可以从外部更好的操作,而无需修改代码内容。

在方法与方法间传递资源,就拿简单的绘图来说,在一个小程序中,画笔资源只有一个,而这个画笔会在另一个方法中,现在有一个画圆形的方法,需要用到这只画笔,由于,方法不知道会在什么时候被调用,所以,你需要预先给它一个参数,这个参数就是画笔。

就像告诉电脑,要想画圆形,就要给我一只笔。

有了参数里的画笔,即使它只是一个参数,但是它已经可以使用了,你可以先用这只笔完成需要的工作,就像是做了一个假设,我如果有一只笔,我要这么做。

然后再调用这个方法的时候,真的给它一只笔就好了~。
第2个回答  2013-06-23
参数有两种形式,一种是形参,一种是实参,还有输入参数,还有输出参数。具体我可以跟你讲解一下,我的QQ:794327453
第3个回答  2013-06-23
你是说 这个方法里面的参数 和 方法体里面的变量相同而且有初始值了 会不会覆盖???

会覆盖,但是你认为会这样写变量吗?