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 閱讀(321) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 乐昌市| 阿克陶县| 寿宁县| 抚顺市| 池州市| 乌什县| 个旧市| 开封县| 汾西县| 蓬莱市| 炎陵县| 馆陶县| 湖口县| 景洪市| 呈贡县| 珲春市| 新沂市| 武夷山市| 鱼台县| 沅陵县| 米易县| 社旗县| 内乡县| 长宁区| 大余县| 辽中县| 昌吉市| 建水县| 瑞昌市| 平谷区| 达州市| 稷山县| 佛山市| 阿巴嘎旗| 利川市| 彝良县| 翼城县| 建宁县| 德令哈市| 根河市| 富阳市|