Huion
          事業向左...愛情向右...失去的...我會在未來期待...
          posts - 1,comments - 3,trackbacks - 0
          問題提出:看下面代碼

          public class Computer{
            
          private String cpuInfo;
            
          private String diskInfo;
            
            
          public Computer(String cpuInfo,String diskInfo){
                     
          this.cpuInfo = cpuInfo;
                 
          this.diskInfo = diskInfo;
               }

            
          public String toInfo(){
              
          return new StringBuffer("cpu:").append(cpuInfo).append("disk:").append(diskInfo).toString();
             }


          //other methods
          }


          public class Test{
            
          static public void main(String [] args){
            Computer c1 
          = new Computer("AMD-XP1800","IBM-3002");
            Computer c2 
          = new Computer("AMD-XP1800","IBM-3002");
               
          if(c1.equals(c2))
               System.
          out.println("c1==c2");
               
          else
               System.
          out.println("c1!=c2");

            }

          }


          代碼的運行結果為:c1!=c2。一開始感覺應該有點意外吧!這個例子告訴我們,不要依賴Object的默認實現,Object 提供的equals方法如下:

          public boolean equals(Object obj){
           
          return (this == obj);
          }


          Object 的= =運算只進行Object的引用的比較,也就是內存地址的比較!

          現在想一想,要是一開始不注意的話,那結果是多么愚蠢吧?
          posted on 2005-06-20 23:47 一輝 閱讀(199) 評論(1)  編輯  收藏 所屬分類: J2SE

          FeedBack:
          # re: J2SE基礎知識之不要依懶Object.equals();
          2006-03-22 15:25 | weibo
          這個是菜鳥都懂啦,哈哈哈哈  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 锦屏县| 化德县| 公安县| 灵丘县| 汕尾市| 赫章县| 高唐县| 望都县| 出国| 浦县| 丹东市| 濉溪县| 高青县| 平果县| 徐汇区| 连江县| 五大连池市| 田林县| 双柏县| 南乐县| 老河口市| 明星| 邢台市| 博野县| 西和县| 阳新县| 河北区| 繁峙县| 遵化市| 昭通市| 尚义县| 九江市| 博兴县| 府谷县| 凤凰县| 镶黄旗| 潜山县| 龙井市| 灵山县| 泾源县| 同江市|