簡單看懂方法的參數(shù)傳遞

pankaj-patel-1366018-unsplash.jpg

方法的參數(shù)傳遞


一.方法的參數(shù)傳遞:

<1>參數(shù)分為哪幾種?
1.實參;2.形參;

<2>什么是實參,什么是形參?
假設(shè)現(xiàn)在你有一支鋼筆,鋼筆的外殼就是形參,是不變的。而墨水則是實參,是需要用的。

<3>實參具體位置在哪里?形參位置具體在哪里?
下面看一段代碼:

1. public class test1{
2.
3.   public static void main(String[] args){
4.           
5.           Test t1 = new Test();
6.           
7.          //s1 和 s2 是實參 
8.           int s1 = 1;
9.           int s2 = 2;
10.           
11.           System.out.println("s1:" + s1 + ", s2" + s2);
12.           
13.           //調(diào)用swap()方法時,傳入實參的值
14.           t1.swap(s1,s2);
15.           
16.           System.out.println("s1:" + s1 + ", s2" + s2);
17.           
18.           /*swap(int s1,int s2) s1 和 s2 是形參
19.           *形參的命名是任意,也可以和實參一樣。
20.           */
21.           public void swap(int s1,int s2){
22.                 
23.                 int temp = i;
24.                 i = j;
25.                 j = temp;
26.                 
27.           }
       

輸出結(jié)果為:

s1:1, s2:2
s1:2, s2:1

總結(jié):
1.形參:方法聲明時,方法小括號內(nèi)是形參。
2.實參:調(diào)用方法時實際傳入?yún)?shù)的值。


二.規(guī)則:java中的參數(shù)傳遞機制:值傳遞機制

<1>形參是基本數(shù)據(jù)類型:將實參的值傳遞給形參的基本數(shù)據(jù)類型的變量

<2>形參是引用數(shù)據(jù)類型:將實參的引用類型變量的值(對應(yīng)的堆空間的對象的首地址值)傳遞給形參的引用類型變量。

第一個形參是基本數(shù)據(jù)類型時,實參的數(shù)值傳遞傳遞給形參,上面的代碼是一個案例了。


現(xiàn)在來說說第二個,當形參為引用數(shù)據(jù)類型的情況。

先舉個栗子,便于讀者理解:

小明和小華現(xiàn)在有同時共有一輛玩具車,可以把玩具車理解為對象首地址值,共有可以理解為一個指針,小明和小華同時指向玩具車,而小明不喜歡玩具車輪子的型號,背著小華偷偷的把輪子型號換了。

這時小華不知道車輪被小明換了。輪子是玩具車的一部分,對象首地址值就是玩具車,輪子就是首地址值指向的數(shù)值,現(xiàn)在數(shù)值被改變了。

先看這段代碼:

1.public class test2{
2.   
3.   //創(chuàng)建一個swap()方法,形參為DateSwap類型的 ds
4.   public void swap(DateSwap ds){
5.   
6.   int temp = ds.i;
7.   ds.i = ds.j;
8.   ds.j = ds.temp;
9.   
10.   
11.   }
12.   
13.   //創(chuàng)建一個靜態(tài)類
14.   static void DateSwap{
15.   
16.     int i = 1;
17.     int j = 2;
18.   
19.     }
20.     
21.   //主方法main()
22.   public static void main(String[] args){
23.   
24.   //創(chuàng)建對象t1
25.   Test1  t1 = new Test1();
26.   
27.   DateSwap ds = new DateSwap();
28.   
29.   //調(diào)用swap()方法
30.   t1.swap(ds);
31.   
32.   System.out.println("ds.i" + ds.i + "ds.j" + ds.j);
33.   
34.  
35.   }
36.   
37.}
ED092BFF73EA705087577F184B86571A.png-92.9kB
ED092BFF73EA705087577F184B86571A.png-92.9kB

在棧區(qū)中開辟了兩個方法,分別把main()看成小明,swap()看成小華,new出來的對象的首地址值看成玩具車,靜態(tài)DateSwap類中初始化的 i 和 j 是輪子,現(xiàn)在把輪子型號做了個交換。

注意:

引用數(shù)據(jù)類型的值其中只要一改變,原值就會跟著改變,而基本數(shù)據(jù)類型是其中一個改變,原值不改變。

就像你去復(fù)印一份資料,復(fù)印件你怎么畫都行,原件內(nèi)容始終是不變的,而引用數(shù)據(jù)類型是,你拿去復(fù)印時,不小心被幫你復(fù)印的人弄了幾筆上去,原件內(nèi)容也就改變了。

s1 和 s2 是基本數(shù)據(jù)類型,s1 和 s2 被交換后,原來的s1 和 s2 保持不變,可以拿第一個代碼對比第二個代碼看。

如果你喜歡這篇文字,可關(guān)注微信公眾號:wu_you_lT,有深度好文等你閱讀哦!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,993評論 0 2
  • 函數(shù) 函數(shù)是執(zhí)行特定任務(wù)的自包含代碼塊。給定函數(shù)一個名稱作為標識,并在需要的時候通過調(diào)用其名稱來執(zhí)行任務(wù)。 Swi...
    BoyceC閱讀 502評論 0 1
  • 前天上班的時候,和一群小朋友同事聊天,為什么叫她們小朋友同事呢,因為和我們這些踩在80后尾巴的人相比,她們都是一群...
    吃飯人閱讀 271評論 4 0
  • 當你老了,頭發(fā)白了......這首歌相信很多人聽過,但是會唱的卻寥寥無幾! 時間總是跑得那么快,我們使勁...
    余小小207閱讀 374評論 1 1
  • 活成什么樣都可以,只要你自圓其說自得其樂??赡惆l(fā)了瘋似地鬧著哭著,我看到小時候的自己,稍有不順就跺腳發(fā)泄,仿佛這樣...
    霾鬼閱讀 329評論 0 0

友情鏈接更多精彩內(nèi)容