/**
* 重写equals方法,进行两个对象的比较
* @author littledyf
*
*/
public class NewEquals {
int number,age;
public NewEquals(int number,int age){
this.number = number;
this.age = age;
}
public boolean equals(Object obj){
if (obj==null){
return false;
}
else{
if (obj instanceof NewEquals){
NewEquals ne = (NewEquals)obj;
if (ne.number==this.number && ne.age==this.age){
return true;
}
}
}
return false;
}
}
import org.junit.Test;
public class EqualsTest {
@Test
public void t(){
NewEquals ne1 = new NewEquals(1, 2);
NewEquals ne2 = new NewEquals(1, 2);
System.out.println("ne1 == ne2 的结果是:" + (ne1 == ne2));
System.out.println("ne1.equals(ne2)的结果是:" + (ne1.equals(ne2)));
}
}
equals方法,对两个对象进行比较的时候,无论这两个对象的属性是否是相同,比较的结果都会是false,因为两个对象的话,其的内存地址是不一样的,这里用equals比较的是两个对象的引用。想要判断两个对象的属性是否是相同的,就需要重写equals方法。如果是进行字符串的比较,直接equals就可以比较,不需要重写方法,因为String类里面重写了从Object继承下来的equals方法,所以不需要再重写。当我们需要用equals进行比较的时候,我们可以先去API文档里面查看需要比较的类型的类里面有没有重写equals方法。