当前位置: 代码迷 >> Java相关 >> 学习java Thinking in java 书中有段代码 & 跟 equals() 关于本题 求解
  详细解决方案

学习java Thinking in java 书中有段代码 & 跟 equals() 关于本题 求解

热度:8488   发布时间:2013-02-25 21:45:16.0
学习java Thinking in java 书中有段代码 & 和 equals() 关于本题 求解
import   java.lang.String;
public   class   Test    
{
public   static   void   main(String[]   args)  
{
int   i=100;
int   j=80;
int   k=25;
System.out.println(k&j);
Yu   yu1   =   new   Yu();
Yu   yu2   =   new   Yu();
yu1.i=yu2.i=100;
System.out.println(yu1.equals(yu2));


}
}
class   Yu
{
int   i;
}

------解决方案--------------------------------------------------------
k&j按位与 
25&80
00011001&01010000=00010000 =16
yu1.equals(yu2)
由于没有重写equals方法 调用 object的equals方法
Java code
    public boolean equals(Object obj) {    return (this == obj);    }
------解决方案--------------------------------------------------------
一楼正解。
Yu yu1 = new Yu();
Yu yu2 = new Yu(); 
这里是两个对象,equals比较的是内存地址是否相同。所以这里的比较结果应该是false,因为没有指向同一个内存地址
------解决方案--------------------------------------------------------
Java code
@Overridepublic boolean equals(Object obj){ if(this == obj){return true;}if(obj instanceof Yu)    if((Yu)obj.i=this.i){         return true;    }}return false;}
------解决方案--------------------------------------------------------
Yu)obj.i==this.i
  相关解决方案