java Source

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            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 對象有效多了,使我們能
          將一個參數發給一個方法。但這樣做也帶來了另一個重要的問題:別名問題

          posted on 2005-11-15 14:15 JustinLei 閱讀(317) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 汨罗市| 莒南县| 汉中市| 安泽县| 广平县| 阳山县| 商都县| 株洲市| 绥德县| 新巴尔虎左旗| 昭苏县| 澎湖县| 大洼县| 莲花县| 南宁市| 增城市| 临夏市| 澎湖县| 宝清县| 宜兴市| 罗城| 潞城市| 工布江达县| 泾阳县| 蒙阴县| 精河县| 城口县| 五大连池市| 阿鲁科尔沁旗| 斗六市| 昭平县| 东城区| 襄樊市| 琼结县| 朝阳市| 鄄城县| 恩施市| 咸阳市| 泾源县| 达拉特旗| 奉新县|