哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>java源碼下載>

java方法參數(shù)傳遞簡(jiǎn)析

大?。?/span>0.3 MB 人氣: 2017-09-27 需要積分:1

  問:當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?

  答:是值傳遞。Java 編程語言只有值傳遞參數(shù)。當(dāng)一個(gè)對(duì)象實(shí)例作為一個(gè)參數(shù)被傳遞到方法中時(shí),參數(shù)的值就是該對(duì)象的引用一個(gè)副本。指向同一個(gè)對(duì)象,對(duì)象的內(nèi)容可以在被調(diào)用的方法中改變,但對(duì)象的引用(不是引用的副本)是永遠(yuǎn)不會(huì)改變的。

  Java參數(shù),不管是原始類型還是引用類型,傳遞的都是副本(有另外一種說法是傳值,但是說傳副本更好理解吧,傳值通常是相對(duì)傳址而言)。

  如果參數(shù)類型是原始類型,那么傳過來的就是這個(gè)參數(shù)的一個(gè)副本,也就是這個(gè)原始參數(shù)的值,這個(gè)跟之前所談的傳值是一樣的。如果在函數(shù)中改變了副本的值不會(huì)改變?cè)嫉闹怠?/p>

  如果參數(shù)類型是引用類型,那么傳過來的就是這個(gè)引用參數(shù)的副本,這個(gè)副本存放的是參數(shù)的地址。如果在函數(shù)中沒有改變這個(gè)副本的地址,而是改變了地址中的 值,那么在函數(shù)內(nèi)的改變會(huì)影響到傳入的參數(shù)。如果在函數(shù)中改變了副本的地址,如new一個(gè),那么副本就指向了一個(gè)新的地址,此時(shí)傳入的參數(shù)還是指向原來的 地址,所以不會(huì)改變參數(shù)的值。

  基本類型參數(shù)傳遞:不改變值

  java方法參數(shù)傳遞簡(jiǎn)析

  引用類型參數(shù)傳遞:改變值

  java方法參數(shù)傳遞簡(jiǎn)析

  無論是什么語言,要討論參數(shù)傳遞方式,就得從內(nèi)存模型說起,主要是我個(gè)人覺得從內(nèi)存模型來說參數(shù)傳遞更為直觀一些。閑言少敘,下面我們就通過內(nèi)存模型的方式來討論一下Java中的參數(shù)傳遞。

  這里的內(nèi)存模型涉及到兩種類型的內(nèi)存:棧內(nèi)存(stack)和堆內(nèi)存(heap)。基本類型作為參數(shù)傳遞時(shí),傳遞的是這個(gè)值的拷貝。無論你怎么改變這個(gè)拷貝,原值是不會(huì)改變的。看下邊的一段代碼,然后結(jié)合內(nèi)存模型來說明問題:

  publicclassParameterTransfer { publicstaticvoidmain(String[] args) { intnum = 30; System.out.println( “調(diào)用add方法前num=”+ num); add(num); System. out.println( “調(diào)用add方法后num=”+ num); } publicstaticvoidadd( intparam) { param = 100; } }

  這段代碼運(yùn)行的結(jié)果如下:

  調(diào)用 add方法前 num= 30調(diào)用 add方法后 num= 30

  程序運(yùn)行的結(jié)果也說明這一點(diǎn),無論你在add()方法中怎么改變參數(shù)param的值,原值num都不會(huì)改變。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?
      平利县| 镇巴县| 屏东县| 科技| 金寨县| 东山县| 静宁县| 连南| 铁岭县| 平阳县| 泾川县| 崇左市| 弥勒县| 理塘县| 上高县| 建瓯市| 宁夏| 元阳县| 洪江市| 惠来县| 靖边县| 焦作市| 佛山市| 玉山县| 兴安盟| 宽甸| 喀什市| 广饶县| 麦盖提县| 米易县| 盘山县| 华蓥市| 德昌县| 平乐县| 依兰县| 疏勒县| 芜湖市| 正安县| 沽源县| 陕西省| 巴彦淖尔市|