首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 傳遞參考驗證:PassHandles 範例與 toString 輸出分析

     編輯:Java 相關知識

將參考傳入方法時,指向仍為同一物件。簡單實驗證明:

//: PassHandles.java
package c12;
public class PassHandles {
    static void f(PassHandles h) {
        System.out.println("h inside f(): " + h);
    }
    public static void main(String[] args) {
        PassHandles p = new PassHandles();
        System.out.println("p inside main(): " + p);
        f(p);
    }
} ///:~

toString() 列印時自動調用。PassHandles 直接繼承 Object 未覆寫 toString(),故用 Object 版本:列印類別名 + @ + 物件儲存位置(非參考位址)。

輸出結果

p inside main(): PassHandles@1653748
h inside f() : PassHandles@1653748

兩者儲存位置相同,證明 p 與 h 參考同一物件。比複製新物件有效得多,但帶來重要問題(別名副作用)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved