導航:首頁 > 編程語言 > java參數傳遞

java參數傳遞

發布時間:2022-01-12 15:25:31

java 方法 傳參

在定義方法的時候,方法的參數叫形參(形式參數),在調用方法的時候,給方法傳遞的參數叫實參(實際參數),你的寫法有問題,在調用abc方法的時候,可以直接把45寫在方法後面(直接寫45需要類型轉換,否則報錯),也可以把45先賦值給一個變數,然後把變數當成參數傳給abc方法,不能又寫變數名,又寫45啊,標准寫法如下:
byte a=45;
abc(a);//或者是abc((byte)45)
public static void abc(byte a){
}

② Java中的 參數傳遞問題

在main函數中,首先給str1復制列印
然後在func函數中,將str1傳遞進去,而這的str1隻是func函數的參數 只在func裡面起作用
所以在以下各列印的時候,列印的依然是主函數mian裡面的hello

③ java 參數傳遞 規則

簡言之:Java都是值傳遞(pass-by-value)

在Java中,無非就是兩種類型,即基本類型和從Object繼承下來的對象類型,而對象類型又包括String這種一旦初始化就不可改變內容的類型和BufferString這種可以初始化後可

以改變內容的類型。

然後看一下代碼示例:

java 代碼
1.package test;
2.
3.public class Test {
1. public static void main(String args[]) {
2. Integer interger1, interger2;
3. int i, j;
4. interger1 = new Integer(10);
5. interger2 = new Integer(50);
6. i = 5;
7. j = 9;
8. System.out.println("Before Swap, Interger1 is " + interger1);
9. System.out.println("Before Swap, Interger2 is " + interger2);
10. swap(interger1, interger2);
11. System.out.println("After Swap Interger1 is " + interger1);
12. System.out.println("After Swap Interger2 is " + interger2);
13. System.out.println("Before Swap i is " + i);
14. System.out.println("Before Swap j is " + j);
15. swap(i, j);
16. System.out.println("After Swap i is " + i);
17. System.out.println("After Swap j is " + j);
18.
19. StringBuffer sb = new StringBuffer("I am StringBuffer");
20. System.out.println("Before change, sb is <" + sb + ">");
21. change(sb);
22. System.out.println("After change sb is <" + sb + ">");
23. }
24.
25. public static void swap(Integer ia, Integer ib) {
26. Integer temp = ia;
27. ia = ib;
28. ib = temp;
29. }
30.
31. public static void swap(int li, int lj) {
32. int temp = li;
33. li = lj;
34. lj = temp;
35. }
36.
37. public static void change(StringBuffer ia) {
38. ia.append(", but my content can be changed");
39. //ia = new StringBuffer(",but my content can be changed");
40. }
41.}
42.
輸出:

Before Swap, Interger1 is 10
Before Swap, Interger2 is 50
After Swap Interger1 is 10
After Swap Interger2 is 50
Before Swap i is 5
Before Swap j is 9
After Swap i is 5
After Swap j is 9
Before change, sb is <I am StringBuffer>
After change sb is <I am StringBuffer, but my content can be changed>

這很好解釋,對於基本類型諸如int,傳遞進去的是存放int值的「內存單元」的一個,所以函數swap裡面的int和外面的int根本就不是一個東西,當然不能反射出去影響外面

的int。而對於對象類型,我們同樣可以這樣認為,傳遞進去的是存放對象類型的指針的「內存單元」一個(雖然Java裡面沒有指針的概念,但這並不妨礙我們理解)。這樣,

在swap函數裡面,對其指針本身的值做任何操作當然不會影響外面的Integer,因為interger1和interger2的「內存單元」裡面的值是不變的,其指向的對象類型也是沒有變的。

然後這里需要說明一個問題,就是StringBuffer這種類型的對象了。因為其內容是可以改變的,所以change函數裡面的「指針」通過類似「*」的操作,改變了StringBuffer對象的

本身,就顯而易見了。(StringBuffer對象本身只有一個副本)

④ Java中如何傳值

可以通過參考傳值,如下:

publicclassTest{
publicvoidfunction(inta){}
publicstaticvoidmain(String[]args){
Testtest=newTest();
inta=1;
test.function(a);
}
}

⑤ Java編程中參數傳遞

兩個情況:
1、args的長度不等於3,退出。
2、args的長度等於3,但不會進for循環,因為x已經等於0是不可能大於3的。
(x=0,還x>args.length??那args必須比0小才行啊!)
這要看args的長度來判斷了,你這樣斷章起義很難判斷啊!樓主!

⑥ java中參數傳遞方式

當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這里到底是值傳遞還是引用傳遞? 是值傳遞。Java 編程語言只由值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。

⑦ java 代碼中的參數傳遞

1.
swap(intobj_a,intobj_b); 調用了public static void swap (interger x , interger y ) 這個方法
說明,Integer雖然是int的封裝類型,而且java本身的裝箱拆箱可以讓他用起來像是一個一樣,但是他們還是不同的東西,還是有區分滴
2.
方法體里的內容是將x,y的值進行交換,也許你會想著,既然是對象進行傳遞,那就是引用傳遞咯,引用傳遞的話……,想的無比之遙遠,不好意思,x,y交換以後intobj_a,intobj_b的值不變,
x,y分別是另外兩個變數而已,他們分別拿的是實參的存儲地址而已
你吧x的地址給了temp,x拿了y的地址,y拿了temp的地址
那時x,y的事兒,跟外面的實參沒有關系
如何才能操作到外面的實參呢,,,根據傳過來的對象本身的方法來改變
就是我改變這塊兒內存區域裡面的東西,就改了

⑧ JAVA的參數傳遞

change(int a)
p.change(pass);
雖然你吧PASS當作參數傳遞進去了,但是方法在執行上實際在內存中新建立一個對象a 並且a=100
並且你的程序中沒有p=a或者p=100
所以P的內容實際上還是50

⑨ java中對象類型的參數傳遞

因為Java里方法參數的傳遞實際上只有值傳遞(不管基本類型或引用類型),對基本類型來說是把其值傳遞了一份過去,而對引用類型來說實際是把引用地址的值復制一份傳遞了過去。

另外,只有用new方法創建的對象的實際成員數據是存放在堆裡面的,而其他方法內部定義的變數都存放在棧中,一旦出了方法的范圍就失效,會被內存回收。

知道了以上兩點,就可以分析了,swap方法里t1,t2,temp都是存放在棧里的只保存引用類型地址的變數,不管他們怎麼交換,實際上不會改變堆裡面的內容,而main方法里的time1, time2的引用類型雖然其地址仍在棧中,而實際數據在堆中,程序中沒有任何改變其內容的語句,因此,不會產生交換。

⑩ Java方法的參數傳遞

對象型類型是引用傳遞,傳遞的是對象的地址。值被修改後原來的變數也會被修改。

閱讀全文

與java參數傳遞相關的資料

熱點內容
hexophp 瀏覽:271
用什麼app買東西半價 瀏覽:62
蘋果下載的pdf文件怎麼打開 瀏覽:211
如何在伺服器上隱藏源站地址 瀏覽:645
單片機進制字母對應表 瀏覽:528
向某人下命令 瀏覽:627
編程中刪除數組中的數 瀏覽:86
aes對稱加密反編譯 瀏覽:550
java編譯成exe 瀏覽:190
gps處理演算法 瀏覽:596
什麼app可以和對象存錢 瀏覽:146
java字元串表達式計算 瀏覽:330
javacmd環境變數 瀏覽:51
電視上面找不到全民歌app怎麼辦 瀏覽:156
單片機中psw0 瀏覽:994
優酷視頻加密么 瀏覽:763
本地連接dos命令 瀏覽:206
雲伺服器怎麼上傳金幣房卡游戲 瀏覽:71
Python快遞管理可視化 瀏覽:419
java正則驗證數字 瀏覽:830