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 一辉 阅读(196) 评论(1)  编辑  收藏 所属分类: J2SE

FeedBack:
# re: J2SE基础知识之不要依懒Object.equals();
2006-03-22 15:25 | weibo
这个是菜鸟都懂啦,哈哈哈哈  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: