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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM