Java中equals方法重写的学习

       


/**
 * 重写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方法。

猜你喜欢

转载自blog.csdn.net/qq_41061437/article/details/81222946