java Source

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            14 Posts :: 24 Stories :: 8 Comments :: 0 Trackbacks

          將句柄傳遞進入一個方法時,指向的仍然是相同的對象。

          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 的重新定義。
          因此,這里會采用toString 的Object 版本,打印出對象的類,接著是那個對象所在的位置(不是句柄,而
          是對象的實際存儲位置)。輸出結果如下:
          p inside main(): PassHandles@1653748
          h inside f() : PassHandles@1653748
          可以看到,無論p 還是h 引用的都是同一個對象。這比復制一個新的PassHandles 對象有效多了,使我們能
          將一個參數(shù)發(fā)給一個方法。但這樣做也帶來了另一個重要的問題:別名問題

          posted on 2005-11-15 14:15 JustinLei 閱讀(317) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 泗洪县| 旺苍县| 河源市| 和田市| 林口县| 清徐县| 阿拉善右旗| 江西省| 于都县| 吴堡县| 阿克苏市| 兴安县| 常德市| 增城市| 阿鲁科尔沁旗| 贺兰县| 惠水县| 项城市| 河东区| 沐川县| 苗栗县| 专栏| 赣榆县| 清水河县| 卫辉市| 政和县| 合水县| 平安县| 娱乐| 和顺县| 耿马| 余庆县| 保康县| 交城县| 开远市| 上饶市| 五原县| 临泉县| 包头市| 林州市| 革吉县|