- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例一:
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参?数的值。引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。下面举例说明:传值---传递基本数据类型参数public????class???????????PassValue{????static void exchange(int a, int b){//静态方法,交换a,b的值????????int temp;????????temp = a;????????a = b;????????b = temp;????}????public static void main(String[] args){???????int i = 10;?????? int j = 100;???????System.out.println(before call: + i= + i + \t + j = + j);//调用前????????exchange(i, j);????????????????????????????????????????????????????????????????????//值传递,main方法只能调用静态方法????????System.out.println(after call: + i= + i + \t + j = + j);//调用后????}}运行结果:????????before call: i = 10????????j = 100????????after????call: i = 10????????j = 100说明:调用exchange(i, j)时,实际参数i,j分别把值传递给相应的形式参数a,b,在执行方法exchange()时,形式参数a,b的值的改变不影响实际参数i和j的值,i和j的值在调用前后并没改变。引用传递---对象作为参数如果在方法中把对象(或数组)作为参数,方法调用时,参数传递的是对象的引用(地址),即在方法调用时,实际参数把对对象的引用(地址)传递给形式参数。这是实际参数与形式参数指向同一个地址,即同一个对象(数组),方法执行时,对形式参数的改变实际上就是对实际参数的改变,这个结果在调用结束后被保留了下来。class Book{????String name;????private folat price;????Book(String n,????float ){????????????????//构造方法????????name = n;????????price = p;????}????static??void? change(Book a_book,????String n,????float p){????//静态方法,对象作为参数????????????a_book.name = n;????????????a_book.price = p;????}????public void output(){????????//实例方法,输出对象信息????????System.out.println(name: + name + \t + price: + price);????}}?public class PassAddr{????public static void main(String [] args){????????Book b = new Book(java2,????32.5f);????????System.out.print(before call:\t);????????//调用前????????b.output();????????b.change(b,????c++,????45.5f);????????????//引用传递,传递对象b的引用,修改对象b的值????????System.out.print(after call:\t);????????????//调用后????????b.output();????}}运行结果:????????before????call:????name:java2????????price:32.5????????after???????call:????name:c++??????????price:45.5说明:调用change(b,c++,45.5f)时,对象b作为实际参数,把引用传递给相应的形式参数a_bo
文档评论(0)