java代码equals方法

package com.bc;

public class Test_6 {
	// 我们知道java中的每个类都继承自Object类,equals是Object方法之一
	String name;
	int age;

	public Test_6(String a, int h) {
		name = a;
		age = h;
	}

	public boolean equals(Object o) {
		if (((Test_6) o).name == name && ((Test_6) o).age == age) {//这里可以省掉==this.name
			return true;
		}
		return false;
	}

	public static void main(String[] args) {
		Test_6 d = new Test_6("zhnags", 23);
		Test_6 d1 = new Test_6("sids", 43);
		System.out.println(d.equals(d1));

	}

}

  

总结:

equals方法的重写。很重要。我知道我们老师总是那种,简单讲,但是更多的在于自己的理解掌握,东西不是别人给你的,是自己领会的

只有当一个实例等于它本身的时候,equals()才会返回true值。通俗地说,此时比较的是两个引用是否指向内存中的同一个对象,也可以称做是否实例相等。而我们在使用equals()来比较两个指向值对象的引用的时候,往往希望知道它们逻辑上是否相等,而不是它们是否指向同一个对象。在这样的情况下, 如果超类也没有重写equals()以实现期望的行为,这时我们就需要重写equals方法。而且这样做也使得这个类的实例可以被用做映射表(map)的键,或者集合(set)的元素,并使映射表或者集合表现出预期的行为。 

原文地址:https://www.cnblogs.com/langlove/p/3436788.html