java方法调用中参数传递的方式

 1 package org.awt;
 2 
 3 import java.awt.Graphics;
 4 import java.applet.Applet;
 5 
 6 
 7 public class test{
 8     
 9     float ptValue;
10     
11     public void changeInt(int value)
12     {
13         value=55;//1
14         int val=value;//2
15         System.out.print(value);
16         //这里理解为型參,pt.changeInt(val)只是将val的的值传递到了changeInt函数中。实验中是用1,但实际上主函数给被调用函数传递参数更多的是形式2
17         //
18     }
19     
20     public void changeStr(String value){
21         
22         value=new String("different");//1
23         String str=value.toUpperCase();//2
24         System.out.println("Inside methon the str value "+str);
25         //这个跟上面一个是同样的道理,不过要记得val str 都是引用类型,都是把地址传递给被调用函数。只不过这里相当于在被调用函数内部把value声明了
26         //对于2直接value.toUpperCase()然后输出得到的还是原来的string。要通过2的形式才能得到想要的输出。不过注意一点想想String 与 StringBuf的区别
27     }
28     
29     public void changeObjValue(test ref){
30         
31         ref.ptValue=99.0f;
32         //当调用pt.changeObjValue(pt)之前,ref.ptValue 和 pt.ptValue 都是指向101.0f这个浮点数的地址单元。当调用之后pt.changeObjValue(pt) 传给changeObjValue函数的是
33         //pt的地址,这时候pt赋值给ref,ref将它的ptValue指向了浮点数99.0f的地址单元
34     }
35     
36     public static void main(String [] args)
37     {
38 
39         String str;
40         int val;
41         test pt=new test();
42         val=11;
43         pt.changeInt(val);
44         System.out.println("Int value is "+val);
45         
46         str=new String("hello");
47         pt.changeStr(str);
48         System.out.println("str value is "+str);
49         
50         pt.ptValue=101.0f;
51         pt.changeObjValue(pt);
52         System.out.println("pt values is"+ pt.ptValue);
53         
54         
55     }
56 }
原文地址:https://www.cnblogs.com/been/p/4126411.html