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
          主站蜘蛛池模板: 买车| 姚安县| 芦山县| 涪陵区| 泌阳县| 鱼台县| 东兰县| 准格尔旗| 五常市| 灵台县| 那曲县| 陆丰市| 曲阜市| 叶城县| 四会市| 高雄市| 莲花县| 西乌| 布尔津县| 星子县| 清新县| 白玉县| 泾源县| 奇台县| 新巴尔虎左旗| 布拖县| 清新县| 保山市| 西宁市| 浦县| 青岛市| 根河市| 盖州市| 永登县| 嘉兴市| 连山| 阜南县| 五华县| 拉萨市| 潼关县| 天门市|