文章詳情頁
Java的pass by Value(傳值)
瀏覽:75日期:2024-06-13 17:43:27
內(nèi)容: Java中使用“pass by value'函數(shù)調(diào)用 方式,這常常造成許多人迷惑。在所有地點,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從本質(zhì)上說,object reference 是按值傳遞的(pass by value)。因此可以修改參數(shù)對象的內(nèi)部狀態(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ù)調(diào)用 方式,這常常造成許多人迷惑。在所有地點,Java都使用嚴格采用pass by value,所以下列程序: class Param {public static void main (Strin
標簽:
Java
相關文章:
1. vue-electron中修改表格內(nèi)容并修改樣式2. 利用FastReport傳遞圖片參數(shù)在報表上展示簽名信息的實現(xiàn)方法3. 以PHP代碼為實例詳解RabbitMQ消息隊列中間件的6種模式4. 微信小程序?qū)崿F(xiàn)商品分類頁過程結束5. 推薦一個好看Table表格的css樣式代碼詳解6. ASP常用日期格式化函數(shù) FormatDate()7. .NET 中配置從xml轉向json方法示例詳解8. ASP新手必備的基礎知識9. HTML中的XML數(shù)據(jù)島記錄編輯與添加10. 不使用XMLHttpRequest對象實現(xiàn)Ajax效果的方法小結
排行榜
