文章詳情頁
Java的pass by Value(傳值)
瀏覽:90日期:2024-06-13 17:43:27
內容: Java中使用“pass by value'函數(shù)調用 方式,這常常造成許多人迷惑。在所有地點,Java都使用嚴格采用pass by value,所以下列程序: class Param { public static void main (String [] args){ int x = 3; triple(x); System.out.println('x after triple : '+ x); } private static void triple (int arg) { arg = arg * 3; System.out.println('arg in triple :'+ arg); }}會產(chǎn)生這樣的輸出:arg in triple : 15x after triple : 5這段代碼不致于讓人糊涂。但如果參數(shù)中傳遞的是對象,可能把人弄迷糊了。如果在程序中以Date對象表示日期,那么下列程序:class Param { public static void main (String [] args){ Date d1 = new Date('1 Apr 98'); nextDateUpdate(d1); System.out.println('d1 after nextDay: ' + d1);Date d2 = new Date('1 Apr 98'); nextDateReplace(d2); System.out.println('d2 after nextDay: ' + d2); } private static void nextDateUpdate (Date arg) { arg.setDate( arg.getDate() + 1); System.out.println('arg in nextDay : ' + arg); } private static void nextDateReplace (Date arg) { arg = new Date(arg.getYear(),arg.getMonth(),arg.getDate()+1); System.out.println('arg in nextDay : ' + arg); }}產(chǎn)生的輸出:arg in nextDay : Thu Apr 02 00:00:00 CST 1998d1 after nextDay: Thu Apr 02 00:00:00 CST 1998arg in nextDay : Thu Apr 02 00:00:00 CST 1998d2 after nextDay: Wed Apr 01 00:00:00 CST 1998從本質上說,object reference 是按值傳遞的(pass by value)。因此可以修改參數(shù)對象的內部狀態(tài),但參數(shù)對象重新賦值,沒有意義。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd Java中使用“pass by value'函數(shù)調用 方式,這常常造成許多人迷惑。在所有地點,Java都使用嚴格采用pass by value,所以下列程序: class Param {public static void main (Strin
標簽:
Java
相關文章:
1. 讓chatgpt將html中的圖片轉為base64方法示例2. 《CSS3實戰(zhàn)》筆記--漸變設計(一)3. CSS3實現(xiàn)動態(tài)翻牌效果 仿百度貼吧3D翻牌一次動畫特效4. ASP.NET MVC把數(shù)據(jù)庫中枚舉項的數(shù)字轉換成文字5. 移動端HTML5實現(xiàn)拍照功能的兩種方法6. ASP.NET Core自定義中間件的方式詳解7. 測試模式 - XSL教程 - 58. html5手機觸屏touch事件介紹9. 用xslt+css讓RSS顯示的跟網(wǎng)頁一樣漂亮10. 教你JS更簡單的獲取表單中數(shù)據(jù)(formdata)
排行榜
