5 回答

TA貢獻51條經驗 獲得超16個贊
1 a值是你 在main()函數中的 int a=1;的值,所以等于1,如果你輸出 System.out.println("a 值:"+add(a)); 就是2。
2 聲明一個值為k 的Koo對象并將 add 方法中的koo賦值給k,所以指向的是同一地址,所以koo.a 值就是2。
不明白就看看這個:
值傳遞:(形式參數類型是基本數據類型):方法調用時,實際參數把它的值傳遞給對應的形式參數,形式參數只是用實際參數的值初始化自己的存儲單元內容,是兩個不同的存儲單元,所以方法執行中形式參數值的改變不影響實際參數的值。
引用傳遞:(形式參數類型是引用數據類型參數):也稱為傳地址。方法調用時,實際參數是對象(或數組),這時實際參數與形式參數指向同一個地址,在方法執行中,對形式參數的操作實際上就是對實際參數的操作,這個結果在方法結束后被保留了下來,所以方法執行中形式參數的改變將會影響實際參數。

TA貢獻88條經驗 獲得超43個贊
這是值傳遞和引用傳遞的區別,先解釋這兩個概念。
值傳遞是指一些基本數據類型在作為方法參數傳遞時,是復制一個副本傳遞過去,傳遞過去的是一個新變量了,跟原來的沒有任何關聯了,改變其中一個的值另一個不會受影響。
引用傳遞是指把這個變量的內存地址傳過去,也就是說傳過去的變量和當前變量指向的是同一個變量,改變其中一個的值兩個都變了。
int類型的數據是值傳遞,類型數據Koo是屬于引用傳遞。如若解惑,望采納

TA貢獻2條經驗 獲得超0個贊
a++ 調用后執行加1 ?++a執行加1后調用 ? ?Koo koo = new Koo() 和Koo k = koo意思一樣 前者構造一個Koo對象 ?后者對象賦值
添加回答
舉報